为所有Docker容器设置全局环境variables

有没有可能设置env。 所有未来的Docker容器的variables?

这将有助于为特定的主机设置http代理,而无需更改Docker镜像文件或运行容器的方式(因此相同的Docker容器可以在不同的“上下文”上正常运行)。

也许通过/etc/default/docker

Docker compose使用variablesreplace,因此您可以在docker-compose文件中使用主机variables:

如果你的bash会话有一个名为EXTERNAL_PORT的variables定义。

 web: build: . ports: - "${EXTERNAL_PORT}:5000" 

检查: https : //docs.docker.com/compose/compose-file/#variable-substitution

另外在代理的情况下,我猜测使用HTTP_PROXY应该redirectstream量默认情况下,如果在当前shell会话中定义。

 export http_proxy=http://10.203.0.1:5187/ export https_proxy=$http_proxy export ftp_proxy=$http_proxy export rsync_proxy=$http_proxy export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" 

类似的东西应该redirect所有的httpstream量,你可以从.bashrc设置它。 从来没有testing与docker让我知道,如果它的作品。

如果你没有像Marcs所说的那样使用docker-compose,那么不会。

Dockerfiles创build二进制文件。 任何未在dockerfile(或者docker-compose yaml或docker docker build )中指定的东西都不会进入容器。 这是出于许多安全原因,以及一般的最佳做法,因为人们可能会导致这些容器依赖于主机本身。 可以使用docker-compose来执行你的构build,也可以考虑更改主机本身,这会影响Docker容器的这一层,例如影响172子网的系统级代理