在Docker中提供了一个命令docker commit,该命令会把对容器的修改提交成一个镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层(该存储层仅仅保存了容器所做的修改),将这些内容构成一个新的镜像。docker commit的基本语法如下:
docker commit [OPTIONS] CONTAINER [镜像名]
其中:
docker commit:Docker拉取镜像的命令关键词;
[OPTIONS]:命令选项,其中–author指定作者,–message制定commit的信息;
CONTAINER:需要commit的容器;
镜像名:新镜像的名字,以<仓库名>:<标签>的方式来指定。如果不显示设置,将默认为None:None。(这个代表没有指定镜像名)
现在将对webserver容器做出的修改提交为一个新镜像nginx:v1,只需要执行docker commit webserver nginx:v1。
任务:定制一个busybox:v1镜像,该镜像在busybox:latest的基础上,新增了一个hello.txt文件。
#以busybox镜像创建一个容器,在容器中创建一个hello.txt的文件。
#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。
docker pull busybox
docker run --name container1 busybox touch hello.txt
#将对容器container1做出的修改提交为一个新镜像,镜像名为busybox:v1
#********** Begin *********#
docker commit container1 busybox:v1
#********** End **********#