文章内容
1.Docker环境搭建
2.容器的创建
3.镜像导入/导出
4.常用远程API(命令)
使用Docker最突出的优势有两点:
1.应用打包部署和测试,解决平台和应用依赖的问题;
2.结合虚拟平台的支持,充分利用资源和虚拟化特性;
1.Docker环境搭建
注:CentOS 7 x64
uname -r –确定系统内核版本高于3.10
yum update 确保 yum 包更新到最新
1.1.通过yum
yum -y install docker --等待安装完成即可
1.2.启动Docker服务
service docker start
1.3.安装测试
docker info
systemctl enable docker
2.容器的创建
以安装MySQL为例(docker pull直接从镜像库中获取)
2.1.创建相关映射目录
cd /usr/local/etc/
mkdir mysql_d --根目录
mkdir ./mysql_d/data --(映射)数据目录
mkdir ./mysql_d/logs --(映射)日志目录
mkdir ./mysql_d/conf --(映射)配置文件目录
2.2.获取MySQL镜像
可以使用阿里的镜像库获取,官方提供的部分镜像可能无法访问而且下载速度较慢;
docker pull registry.cn-hangzhou.aliyuncs.com/origin/mysql-5.7.17-shanghai-zone
2.3.创建MySQL容器
#到mysql_d目录执行
docker run
#端口映射
-p 33306:3306
#容器名
--name mysql-docker
#目录挂载--配置文件
-v /usr/local/etc/mysql_d/conf:/etc/mysql/conf
#目录挂载--日志文件
-v /usr/local/etc/mysql_d/logs:/etc/mysql/logs
#目录挂载--数据文件
-v /usr/local/etc/mysql_d/data:/etc/mysql/mysql_data
#启动参数--root密码
-e MYSQL_ROOT_PASSWORD=root
#镜像--镜像名称:Tag
-d registry.cn-hangzhou.aliyuncs.com/origin/mysql-5.7.17-shanghai-zone:latest
目录映射对于docker容器和宿主机是共享的,而对于不同的镜像配置文件、日志存放的目录不一定相同,
2.4.测试远程连接
可通过MySQL客户端连接映射出的宿主机33306端口
3.镜像导入/导出
如果我们在已有的容器上做了修改(比如新建了数据库),在部署到新的环境时并不希望重新部署数据库,可以通过Docker创建的镜像并导出;
3.1.修改原有容器
新建文件: /usr/local/origin.txt
cd /usr/local/
touch origin.txt
3.2.使用原有容器创建镜像
使用ps命令查看当前容器列表,获取容器的ID:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e43f17f1e79 registry.cn-hangzhou.aliyuncs.com/origin/mysql-5.7.17-shanghai-zone:latest "docker-entrypoint.sh" 27 minutes ago Up 27 minutes 0.0.0.0:33306->3306/tcp mysql-docker
使用commit命令,提交对当前容器的修改:
docker commit 4e43f17f1e79 mysql_docker_new
使用images命令查看镜像列表:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql_docker_new latest 075fe47e059c 8 seconds ago 405.6 MB
registry.cn-hangzhou.aliyuncs.com/origin/mysql-5.7.17-shanghai-zone latest 877345fbf968 6 months ago 405.6 MB
其中mysql_docker_new为我们新创建的镜像;
3.3.使用新镜像创建容器
参照第二节的步骤,创建新的容器mysql_docker_new ,映射的端口到33305;
新的容器不做目录映射或映射到其他位置,以免和原容器出现冲突;
docker run -p 33305:3306 --name mysql_docker_new -e MYSQL_ROOT_PASSWORD=root -d mysql_docker_new:latest
3.4.新容器测试
查看在原容器新建的文件是否存在:
docker exec -it mysql_docker_new ls /usr/local/
bin etc games include lib man origin.txt sbin share src
从命令可以看出,在原容器中创建的文件,包含在了新的容器中;
3.5.镜像的导入导出
如果需要将对当前容器的修改带入到新的宿主机,可以通过save/load命令来完成:
首先,提交当前容器的修改,创建新的镜像mysql_docker_saved;
docker save > /home/docker/mysql_docker_saved.tar mysql_docker_saved:latest
导入镜像的命令为:
docker load < /home/docker/mysql_docker_saved.tar
4.常用远程API(命令)
常用的命令包括:镜像基本操作、容器基本操作、容器管理、其他命令;
参考:
Docker 命令大全