1. 容器打成镜像
Docker 提供了 commit
命令支持将容器重新打成镜像文件,其命令格式如下所示
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令中的选项 [OPTIONS]
有如下候选:
![](/i/l/?n=22&i=blog/174578/202210/174578-20221019181717933-1562013095.png)
过程示例
执行 sudo docker ps -a
查看本机上的所有容器,此处笔者选择运行中的consul 容器 eda05ad514f8 为例子
执行 sudo docker commit -a "nathan" -m "create new img" eda05ad514f8 consul:v0
命令以容器为基础生成新的镜像 consul:v0,镜像 id 为 5aeabb78080d2431b2a18809a24edee401d2d65349ce82f32f66b67cf32fc654
执行 sudo docker image ls
命令查看本机上的 Docker 镜像,可以看到已经成功制作镜像 consul:v0
2. 镜像打包
镜像文件经常有在服务器之间传输的需求,为此 Docker 提供了镜像打包和镜像加载的命令
2.1 镜像打包为 tar 文件
Docker 的 save
命令可将镜像打包成 tar 文件,其格式如下
OPTIONS 选项只有
-o
用于指定输出到的文件
docker save [OPTIONS] IMAGE [IMAGE...]
示例使用
sudo docker save -o consul:v0.tar consul:v0
命令执行完成后在当前目录下生成了 tar 文件
2.2 从 tar 文件载入镜像
Docker 的 load
命令可从 tar 文件载入镜像,其命令格式如下
OPTIONS 选项可选
-i
用于指定载入的镜像文件-q
精简输出信息
docker load [OPTIONS]
示例使用
由于笔者所有操作都是在同一台机器上,所以先执行 sudo docker image rm 5aeabb78080d
删除之前的镜像
执行 sudo docker load -i consul:v0.tar
重新载入镜像