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

云计算
我们常常会基于某个image来启动一个container,在这个container中我们可能会执行某些操作,比如创建一个文件,但是当这个container退出以后,如果我们以同一个的image启动了另一个container,在这个container中是看不到之前那个container创建的文件的,如果想让后面的container看到之前那个container创建的文件,就要把之前那个container保存成一个镜像,然后基于这个镜像来启动后面的那个container。

我们常常会基于某个image来启动一个container,在这个container中我们可能会执行某些操作,比如创建一个文件,但是当这个container退出以后,如果我们以同一个的image启动了另一个container,在这个container中是看不到之前那个container创建的文件的,如果想让后面的container看到之前那个container创建的文件,就要把之前那个container保存成一个镜像,然后基于这个镜像来启动后面的那个container,举个简单的例子:(假设我们都是以root权限操作)

  1. docker run -i -t ubuntu:14.04 /bin/bash 

该命令执行完我们就基于ubuntu:14.04启动了一个container,在这个container中我们通过bash来与之(container)交流,同时,这条命令执行完我们会看到命令提示符变成了:

  1. root@0c4d0d394e7e

后面的0c4d0d394e7e就是这个container的ID,接着我们可以在这个container中创建一个文件,如下:

  1. touch  /root/test.c 

然后我们退出这个container(执行 exit),并通过以下命令来将这个container保存成一个镜像:

  1. docker commit  0c4d0d394e7e ubuntu:new_change 

接着我们可以通过docker images来查看当前拥有的镜像,发现多了一个,其Tag就是new_change,接着我们可以以这个镜像来启动另一个container,如下:

  1. docker run -i -t ubuntu:new_change  /bin/bash 

在该container中我们可以找到之前创建的test.c文件,如果我们以原来的ubuntu:14.04来启动后一个container,是找不到test.c的。

责任编辑:Ophira 来源: zqxnum1的专栏
相关推荐

2016-12-26 15:23:21

戴尔

2011-03-28 14:02:07

MirahJava对手

2012-01-12 10:09:55

Elementary 思路

2014-09-18 14:13:54

Docker

2021-05-29 07:13:26

微软Nobelium网络攻击

2024-01-15 00:35:23

JavaScript框架HTML

2011-11-10 09:46:41

云计算云管理

2014-09-16 10:34:59

Docker达龙云

2014-09-17 15:44:42

DockerContainer虚拟化

2018-12-05 09:00:46

DevOps持续交付持续集成

2012-03-02 09:22:11

程序员

2021-06-16 12:03:49

WindowsLinux游戏

2011-11-15 10:16:04

Linux操作系统

2011-11-14 09:41:10

Linux Mint

2019-08-26 08:00:55

Docker容器映像

2017-03-22 09:39:09

Docker数据容器

2014-06-03 09:55:34

DockerLinux容器Ubuntu

2014-11-11 15:25:00

Dockerambassador云计算

2017-05-26 18:06:47

2009-04-23 09:42:39

FubuMVCASP.NET MVCMVC
点赞
收藏

51CTO技术栈公众号