我使用我的docker容器构建了一个图像:
https://github.com/brando90/hbf_tensorflow_code/blob/master/docker_files/tf_cpu_py3.4/Dockerfile
最终系统决定让其中一个python模块因某些奇怪的原因而消失(对我来说完全无法解释)。它出错了,我用bash运行了一个容器并安装了缺少的python库。我跑了:
apt-get install python3-tk
它在正在运行的容器中安装了缺少的库(已经神奇地卸载了)并且它很好。现在事情似乎奏效了。但是,如果没有删除它或没有使用该命令添加新的docker文件,是否有可能在现有的docker镜像中运行此安装命令?
也有人对可能发生的事情有任何猜测,甚至跟踪可能发生的事情吗?我确实尝试从头开始重新制作泊坞窗图像,但它一直有错误。这是否意味着我需要在我的Dockerfile中添加该命令(看起来有点随机)?
答案 0 :(得分:3)
一般来说,在Docker术语中,有两种方法可以解决这个问题。
第一种方法是将缺少的包添加到Dockerfile
并重建图像。我只需将python3-tk
附加到您的其他apt-get install
命令并重建它。
第二个选项是根据现有容器保存新图像。如果已经有基于原始映像运行的容器并且您已修复该问题,则可以使用docker commit
命令。只需运行docker commit <container_id> <new_image_name>
。
请记住,容器正在基础映像上运行覆盖文件系统。他们不直接写图像。因此,如果要将包添加到容器中,则这些更改不会立即反映在基本映像中。