环境配置:不同的电脑环境安装不同的版本,我的是
win10企业版或教育版:docker for windowswin10
家庭版/win7:dockertoolbox
其他系统参考:https://yeasy.gitbooks.io/docker_practice/content/install/
我的系统是win10家庭版:
dockertoolbox:【下载链接 】 【安装教程链接】
安装完成会出现下面三个图标:
右键电脑左下角开始键选择windows PowerShell(i)
出现下面界面,输入docker-machine -version查看docker-machine版本号,出现版本号安装完成
关闭Windows powerShell双击DockerQuickstart图标出现以下界面:
其中192.168.199.100是docker在本机的虚拟地址。
输入docker info查看docker信息:
国内从docker hub拉取镜像网速较慢,此时可以配置加速器,配置加速器有多种方式,这里我配置的是阿里云镜像加速器
首先进入阿里云网页注册登录:【阿里云网页点此】
在搜索栏搜索镜像加速器,可以看到加速器地址和加速教程,我的地址是:https://rwo0rvut.mirror.aliyuncs.com
创建default虚拟机,配置阿里云加速器的代码
docker-machine create --engine-registry-mirror=加速地址 -d virtualbox default
docker-machine restart default
# 若虚拟机已经创建好
docker-machine ssh default sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profileexit
docker-machine restart default
加速地址填阿里云网页上的加速地址
在Docker Quickstart Terminal中输入docker info可以看到Registry Mirrors后面为阿里云镜像加速器地址。
一、拉取镜像:
docker pull [镜像名:版本号]
例:
docker pull mysql
出现以下界面,拉取mysql:latest镜像,没有版本号时默认拉取最新镜像
等待拉取完成
输入docker images可以看到刚刚拉取的镜像
二、创建容器
有了镜像之后就可以使用镜像创建容器了。
1.普通创建
docker run -itd -p 8888:8080 --name [新建的容器名] [镜像名]
(1)docker run:运行一个容器
(2)-itd:表示交互界面后台运行
(3)-p:给容器设置端口
(4)8888:8080 :将容器端口映射搭配本地(前者映射本地端口,后者为docker容器端口)如果镜像名为tomcat的话进入浏览器http://192.168.99.100:8888/可以看到tomcat的tom猫界面。
(5)–name:给容器设置名字,名字放在其后。
2.mysql容器创建并挂载数据卷
docker run -itd -p 3307:3306 --name [新建的容器名] -e MYSQL_ROOT_PASSWORD=123456 -v /f/work/mysqldata:/var/lib/mysql [镜像名]
(1)-e :环境变量设置
(2)MYSQL_ROOT_PASSWORD=123456 :设置mysql的密码为123456
(3)-v:挂载数据卷到本地
(4)/f/work/mysqldata:/var/lib/mysql
3.连接mysql容器的tomcat容器创建
docker run -itd -p 8888:8080 --name [新建的容器名] --link [连接的mysql容器名] [镜像名]
(1)–link:表示tomcat连接了的mysql的容器
4.查看容器地址
docker inspect [容器名]IPAddress后面就是容器地址
5.查看容器日志
docker logs -f [容器名]
6.查看所有容器
docker container ls -a
三、将war包copy到tomcat容器的webapps下去
docker cp xxx.war [容器名/id]:/usr/local/tomcat/webapps
注意:此命令需要进入到war包所在的目录下执行
四、 将项目容器打包成镜像上传到Docker hub帐号
1.docker login
username:wanxue
password:
2.docker commit -a “镜像作者” -m “提交的说明文字” [打包的容器名称] [打包的镜像名称]
3.标记镜像docker tag image username/repository:tag
4.发布镜像 docker push username/repository:tag
五、 mysql的操作
1.进入容器
docker exec -it [mysql容器名] /bin/bash
2.登录
mysqlmysql -u root -ppassword:(输入密码)
3.数据库其他操作
查看数据库:show databases;(分号别忘了,以下同)
添加数据库:create database [数据库名] ;
导入数据:use [数据库名] ;
source /var/lib/mysql/xxx.sql ;(需要先把sql文件cp到目录下)
连接失败:alter user ‘root’@’%’ identified with mysql_native_password by ‘密码’ ;(最新的mysql镜像容器需要进入数据库打入此行命令,如果不打入则数据库连接不上;mysql:5.7不需要执行此行命令)
六、使用dockerfile生成镜像
docker build -t [镜像名] . (点不能掉,表示当前目录下)
七、docker导出/导入镜像导
出镜像:docker save > xxx.tar [要导出的镜像名或id](导出后在运行目录下找)
docker save : -o .tar(不会出现导入后为none)
导入镜像:docker load > xxx.tar
更改镜像repository和tag的名字: docker tag [镜像id] [要改的名称repository]:[版本tag]
第一种情况:配置项目的docker镜像
1、导入需要的基础镜像
docker pull tomcat
docker pull mysql:5.7
2、将项目war包copy到tomcat的webapp目录下
进入项目war包所在目录
docker cp xxx.war 3639:/usr/local/tomcat/webapps
注意:此处3639为tomcat镜像的id,id写前4-5个字符即可
3、启动mysql容器并导入数据库文件
docker run -itd -p 3307:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -v /f/work/mysqldata:/var/lib/mysql mysql:5.7
进入容器导入数据库(没有数据库文件直接忽略下面的步骤)
docker exec -it mysql1 /bin/bash
mysql -u root -p
password:(输入密码123456)
show databases;(分号别忘了,以下同)
查看数据库:添加数据库:create database [数据库名] ;
导入数据:use [数据库名] ;
source /var/lib/mysql/xxx.sql ;(需要先把sql文件cp到目录下)
连接失败:alter user ‘root’@’%’ identified with mysql_native_password by ‘密码’ ;(最新的mysql镜像容器需要进入数据库打入此行命令,如果不打入则数据库连接不上;mysql:5.7不需要执行此行命令)
4、启动连接mysql的tomcat容器
docker run -itd -p 8888:8080 --name myweb --link mysql2 tomcat:latest
5.进入浏览器查看web项目
http://docker虚拟地址:8888/xxx
完成!
第二种情况:导入别人的tomcat和mysql镜像
1.进入tar包所在目录导入两个tar包docker load < xxx.tar
2、按照第一种情况启动两个容器