docker镜像和容器

docker 镜像(image),容器(container)

两者是互相转化的关系, 前者是一种【过去式】,后者是【进行时】, 镜像就好像是 git 的 tag 标签,是已经打上烙印, 是可以回滚回去的。 后者就是正在运行的状态,是基于镜像的。

比如我们对镜像 ImageA(镜像 ImageA 是静止状态)启动起来, 启动后就变成了 ContainerA 容器(运行状态), 当我们对该容器进行了修改(比如在该容器中运行了 sudo apt-get install cmake), 则该容器 ContainerA 和初始的镜像 ImageA 会出现了差异, 然后我们可以将该容器 commit 成另一个镜像 ImageB 。 这样下次在需要装有 cmake 的容器时,我们可以直接基于 ImageB 启动(run) 出一个 ContainerB , 这样 ContainerB 就自然而然已经装好了 cmake 这个软件。 而且各种容器互不干扰,每个容器其实就对应着一个虚拟机, 也就是在同一台物理机上面我们可以虚拟机 N 个虚拟机(N个容器)。

相关推荐