如果你学习了前面的的三篇文章:
[1] 外行人都能看的懂的Docker简介
[2] 一篇文章带你入门Docker
[3] docker应用部署实战(MySQL、Tomcat、Redis、RabbitMQ)
那恭喜你,你现在已经可以将自己的应用程序+运行环境打包好放到docker里了。然而,做到这一步显然还不够。你需要将你的docker镜像对外提供出去,这样才能放到其他主机上去跑。本节我们就来实战一下将容器打包成Docker镜像,并提供对外拷贝的.tar包或将其直接发布到阿里云仓库。
1.容器保存为镜像
命令:
docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]
解释:
-m= : 为镜像添加描述信息
-a= : 为镜像添加创建者信息
容器名称|容器ID : 当前要被打包的容器名称或容器ID
生成的镜像名[:标签名] : 指定镜像名称或标签名称
1.1 创建测试容器
创建并进入容器
docker run -it --name=my_ubuntu ubuntu /bin/bash
随便增加一些文件
2.2 将该容器打包成镜像
1.首先退出容器
2.执行打包命令
在这里需要强调一点:镜像名必须要全部小写,否则将不能打包。
3. 查看镜像列表
2.3 运行容器
运行容器验证一下:
2.4 对有目录/文件映射的容器的处理
针对映射了宿主机的文件/目录的容器,在打包成镜像时,映射文件/目录并不会被打包进去。
针对这种情况提供两种解决方案:
1.直接将原来的映射目录/文件拷贝进容器后再打包。
docker cp 要拷贝的文件或目录 容器ID或容器名称:要拷贝到的容器内部位置
2.对外提供镜像时,把映射文件一起提供出去。当运行镜像时,指定映射关系。
2.将镜像备份成.tar文件
命令
docker save -o 保存的PathName 镜像名:标签
将镜像打包,并保存在当前目录下:
3. 从.tar文件恢复
1.先删除原有的my_ubuntu:1.0镜像
2.恢复镜像
命令
docker load -i 镜像备份文件
实操
4. 上传到阿里云仓库
4.1 进入阿里云控制台
进入阿里云控制台,找到容器镜像服务,并点击进去。
初次进入需要设置远程仓库密码
设置密码
4.2 创建镜像仓库
选择本地仓库
4.3 查看操作指南
具体说明
4.4 实操将镜像提交到阿里云
docker tag的目的是:标记此镜像为阿里云仓库的镜像
4.5 实操从云仓库拉取镜像
先删除原有镜像
拉取镜像
运行镜像