如何从Docker镜像中删除ENV设置

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

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

我知道我可以replace它,但是可以将其删除(并且使用正常的bashconfiguration文件设置)。 我宁愿不要破解shellconfiguration文件来覆盖它。

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

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

在执行docker inspect <image> ,您可以检索已经使用的容器的ID以创build此映像。

你可以做docker commit <container id> <new image name> ,所有的ENV和其他configuration都会刷新。

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

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

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

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

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

例如,取消设置环境variablesFOO

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

然后提交容器

docker commit -m 'removed FOO' CONTAINER_ID IMAGE