参考视频
1.将容器转为镜像
eg:在tomcat镜像I1的容器C1中,部署了一个项目,并将C1转成一个全新的镜像I2。此后运行这个全新的镜像I2并生成一个容器C2时,该容器内部就会包含先前部署好的项目。
注意:容器转成镜像时,只会将容器中非数据卷的目录或文件打包进镜像,数据卷对应的目录和文件并不会打包进镜像。
2.将mysql容器转为镜像
-
[生成并操作容器] 先运行mysql镜像生成容器,挂载数据卷,并操作该容器(新增一个名为test_docker_db的数据库)
-
[将容器转为镜像] 查看该容器的id,并根据id将容器转为镜像
# 查看所有容器(目的是查询容器id) docker ps -a # 将容器转为镜像 docker commit <容器id> <新镜像名称>:<新镜像版本号>
-
[运行新镜像生成容器] 使用
docker run
命令运行新镜像并生成一个容器 -
[进入容器查看文件情况] 使用
docker exec
进入新生成的mysql容器:- 可以用root@123456进行登录,说明非数据卷的数据成功被打包进了镜像中;
- 先前容器创建的数据库表丢失,说明数据卷的数据没有被打包进镜像。
3.镜像的传输
相关指令如下
# 将镜像转为压缩文件
docker save -o <压缩文件名称> <镜像名称>:<镜像版本号>
# 将压缩文件还原成镜像
docker load -i <压缩文件名称>
使用docker save -o
将镜像转换成压缩文件之后,就可以借助U盘等工具将传输镜像了。
接受方接收到压缩文件,使用docker load
即可将压缩文件还原成docker镜像。