docker - 为所有Docker容器设置全局环境变量

标签 docker systemd

是否可以设置环境。所有 future Docker容器的变量?

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

也许通过/etc/default/docker

最佳答案

Docker compose使用变量替换,因此您可以在docker-compose文件中使用主机变量:

如果您的bash session 定义了一个名为EXTERNAL_PORT的变量。

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

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

同样在代理的情况下,我猜测如果在当前shell session 中定义了默认情况下,使用HTTP_PROXY应该重定向流量。
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"

这样的操作应该重定向所有http通信,您可以从.bashrc进行设置。从未测试过docker,请让我知道它是否有效。

关于docker - 为所有Docker容器设置全局环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40719226/

相关文章:

docker - Eclipse-蚊子 "Address not available"

git - 如何解决 RHEL 容器上的 "shell request failed on channel 0"?

linux - 使用 Systemd 在 Ubuntu VM 的后台运行 Node 应用程序

node.js - 在 NGINX 中托管 Express js api

java - 我的 Dockerfile 无法访问 jar 文件

node.js - 如何在 docker CMD 命令中运行多个 npm 脚本

linux - systemd 在 ExecStop 完成之前杀死我的进程

debian - 更改 Prometheus 节点导出器在 systemd 插入单元中监听的地址

logging - 使用不带日志的 systemd

ubuntu - 系统错误 "failed to start service: unit service is not loaded properly: exec format error"