【发布时间】:2013-09-23 05:55:07
【问题描述】:
我有一个设置 HOME 和 PATH 的 docker 映像:
[{
...
"config": {
"HOME=/",
}
...
我知道我可以替换它,但是否可以删除它(并使用正常的 bash 配置文件设置)。我不想破解 shell 配置文件来覆盖它。
【问题讨论】:
-
请解释一下您为什么要这样做?
标签: docker
我有一个设置 HOME 和 PATH 的 docker 映像:
[{
...
"config": {
"HOME=/",
}
...
我知道我可以替换它,但是否可以删除它(并使用正常的 bash 配置文件设置)。我不想破解 shell 配置文件来覆盖它。
【问题讨论】:
标签: docker
我无法让 @creack 为我工作。
在我的情况下,我无意中将一些环境变量提交给了图像,我想将它们从图像中删除。
我最终启动了图像并通过使用没有变量值的-e 选项“取消设置”环境变量,
例如取消设置环境变量 FOO
docker run -it -e FOO IMAGE /bin/bash
然后提交容器
docker commit -m 'removed FOO' CONTAINER_ID IMAGE
【讨论】:
unset FOO。
您可以简单地执行手动提交。
此操作在 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/。
【讨论】: