我们常常会基于某个image来启动一个container,在这个container中我们可能会执行某些操作,比如创建一个文件,但是当这个container退出以后,如果我们以同一个的image启动了另一个container,在这个container中是看不到之前那个container创建的文件的,如果想让后面的container看到之前那个container创建的文件,就要把之前那个container保存成一个镜像,然后基于这个镜像来启动后面的那个container,举个简单的例子:(假设我们都是以root权限操作)
- docker run -i -t ubuntu:14.04 /bin/bash
该命令执行完我们就基于ubuntu:14.04启动了一个container,在这个container中我们通过bash来与之(container)交流,同时,这条命令执行完我们会看到命令提示符变成了:
- root@0c4d0d394e7e:
后面的0c4d0d394e7e就是这个container的ID,接着我们可以在这个container中创建一个文件,如下:
- touch /root/test.c
然后我们退出这个container(执行 exit),并通过以下命令来将这个container保存成一个镜像:
- docker commit 0c4d0d394e7e ubuntu:new_change
接着我们可以通过docker images来查看当前拥有的镜像,发现多了一个,其Tag就是new_change,接着我们可以以这个镜像来启动另一个container,如下:
- docker run -i -t ubuntu:new_change /bin/bash
在该container中我们可以找到之前创建的test.c文件,如果我们以原来的ubuntu:14.04来启动后一个container,是找不到test.c的。