1、保存容器
1.1、语法
保存容器的语法如下:
docker commit ${container_id} ${image_name}
1.2、实践
首先查看当前容器列表
docker ps -a
docker ps #查看所有运行中的容器
docker ps -a #查看所有容器(包含停止的,暂停的等等)
执行结果如下:
root@xxzx-PC:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdbb277fd90b 8e96caa49db0 "/bin/bash" 59 minutes ago Up 13 minutes 0.0.0.0:20-21->20-21/tcp anon_share
5dea137eefe8 debian10/apache2-ssl:v3.3 "/bin/bash" 8 days ago Exited (0) 22 minutes ago web
a07111829959 c428dcf81d15 "/bin/bash" 9 days ago Exited (0) 9 days ago share_ftp_liumou
现在我想保存第一个容器,那么根据语法所得,我的命令如下:
docker commit bdbb277fd90b debian10-arm/ftp-anon_rw:v1.0
执行结果
root@xxzx-PC:~# docker commit bdbb277fd90b debian10-arm/ftp-anon_rw:v1.0
sha256:d3cc6638298cf9a9a06db1f0f668330fd137c5bc02b65e7a20cfa41a4b0de194
root@xxzx-PC:~#
PS:出现一串ID加密值说明执行成功
执行完成之后,我们看一下本地镜像验证一下
root@xxzx-PC:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian10-arm/ftp-anon_rw v1.0 d3cc6638298c About a minute ago 274MB
<none> <none> c428dcf81d15 4 weeks ago 274MB
debian10/apache2-ssl v3.3 ab0f7e9b3818 2 months ago 368MB
armv8/debian 10-buster 8e96caa49db0 2 months ago 108MB
可以看到,此时第一个镜像就是刚才保存的镜像,那么容器的保存就结束了。
2、镜像保存
由容器保存为镜像之后,也只能在本地运行(或者推送仓库给其他机器),想要离线分享,还需要把镜像保存为一个文件,下面开始
2.1、镜像保存语法
docker save -o ${new_images_file} ${images_id}
${new_images_file} #定义一个文件名
${images_id} #定义一个镜像的ID或者名称
2.2、实践
根据语法,我们需要先查询本地镜像信息,然后再保存
root@xxzx-PC:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian10-arm/ftp-anon_rw v1.0 d3cc6638298c About a minute ago 274MB
<none> <none> c428dcf81d15 4 weeks ago 274MB
debian10/apache2-ssl v3.3 ab0f7e9b3818 2 months ago 368MB
armv8/debian 10-buster 8e96caa49db0 2 months ago 108MB
此时得出了镜像的ID/名称,那么就可以继续了。
root@xxzx-PC:~# docker save -o debian10-arm_ftp-anon-rw_v1.0.tar d3cc6638298c
root@xxzx-PC:~#
执行保存命令之后,查看一下本地文件
root@xxzx-PC:~# ls
模板 debian10-arm_ftp-anon-rw_v1.0.tar faith python_spzx vsftp
root@xxzx-PC:~#
嗯,教程结束了。