8

我有一个设置 HOME 和 PATH 的 docker 映像:

[{
  ...
  "config": {
    "HOME=/",
  }
  ...

我知道我可以替换它,但是否可以删除它(并使用正常的 bash 配置文件设置)。我不想破解 shell 配置文件来覆盖它。

4

2 回答 2

6

我无法得到@creack 的答案来为我工作。

在我的情况下,我无意中将一些环境变量提交到图像中,我想将它们从图像中删除。

-e我最终通过使用没有变量值的选项来启动图像并“取消设置”环境变量,

例如取消设置环境变量 FOO

docker run -it -e FOO IMAGE /bin/bash

然后提交容器

docker commit -m 'removed FOO' CONTAINER_ID IMAGE

于 2016-09-25T07:28:44.943 回答
3

您可以简单地执行手动提交。

此操作在 Dockerfile 中不可用,但可以手动完成。

执行此操作时docker inspect <image>,您可以检索已用于创建此图像的容器的 ID。

你可以这样做docker commit <container id> <new image name>,所有的 ENV 和其他配置都将被刷新。

如果容器已被移除,您可以运行镜像docker run -d <image> <any command,然后提交生成的容器。

如果你想保留一些配置,你可以使用docker commit -run '{}' <container id> <new image name>语法。参见http://docs.docker.io/en/latest/commandline/command/commit/了解更多信息。

于 2013-09-23T17:10:18.733 回答