【发布时间】:2017-01-22 10:49:56
【问题描述】:
我有一个部分可以工作的 docker 映像。为了让它充分发挥作用,我必须运行
sudo docker run -d -p 80 --name myimage -e ADMIN_USER="user1" -e ADMIN_PASSWORD='password1' leonixyz/myimage:1.0
第一次执行图像时,我的代码会在内部配置应用程序。
这很方便,因为每次我需要一个新的应用程序实例,每次都必须为不同的用户配置,我可以将不同的环境变量传递给docker run,我的代码将专门为新用户。
不幸的是,我发现这些变量无法从容器中删除。
如果我这样做:
sudo docker exec -it <container_id> bash
然后我可以看到变量 ADMIN_USER 和 ADMIN_PASSWORD (显然)仍然存在。
我尝试在一次性配置代码的末尾unset ADMIN_PASSWORD,但它不起作用。
在正在运行的容器中从 bash shell 运行 unset ADMIN_PASSWORD 也不起作用。
有没有办法在容器启动后从容器中删除环境变量?
谢谢
编辑 正如所指出的,最好不要通过环境变量传递秘密,这里解释了一个很好的解决方法https://github.com/docker/docker/issues/13490#issuecomment-162125128
【问题讨论】:
标签: docker environment-variables