如何从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/了解更多信息。
我无法得到@ creack的答案为我工作。
在我的情况下,我无意中提交了一些环境variables的图像,我想从图像中删除它们。
我最终通过使用-e
选项来启动映像并“取消设置”环境variables,该variables没有值,
例如,取消设置环境variablesFOO
docker run -it -e FOO IMAGE /bin/bash
然后提交容器
docker commit -m 'removed FOO' CONTAINER_ID IMAGE