thfff 发表于 2014-12-24 10:07:07

Docker中基于已执行操作的container镜像启动另一个container

我们常常会基于某个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 commit0c4d0d394e7e 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的。

页: [1]
查看完整版本: Docker中基于已执行操作的container镜像启动另一个container