一尘不染

复制Docker容器进行调试

docker

我有一个正在运行的Docker容器。我已经在运行的Docker容器中做了一些有用的工作。我已经完成了这些工作,而不是dockerfile的一部分,我已经在容器内完成了它。[例如:我已经在容器内安装了ping,而不是从docker文件中安装了ping]

现在,我被困在一个地方。我不确定是否要在同一个容器中进行调试,否则可能会使到目前为止在容器中所做的事情松懈。

因此,我想使用该运行容器中的所有可用东西创建它的副本[例如,我不想从映像中构建一个容器,并重复在运行容器中实现的所有成功步骤,然后开始调试。我不想在第二个容器中重新安装ping]。

总计,我如何复制容器?如果不是,所有的可能性是什么?


阅读 233

收藏
2020-06-17

共1个答案

一尘不染

  1. 创建一个基本映像并运行它

    docker run -it <base_image> /bin/bash
    
  2. 进行必要的更改

    yum install ping
    
  3. 用新名称提交

    docker commit <hash tag of running container> new_image
    

现在,如果您通过运行打开new_image

docker run -it new_image /bin/bash

您可以看到其中ping已安装。

打开base_image,并且没有ping安装。

希望它回答了您的问题。

2020-06-17