如何设置默认的docker环境variables

我想默认为所有容器设置envvariablesSERVICE_CHECK_TTL 。 我可以以某种方式使用docker deamon,就像这个为所有容器设置默认envvariables的例子一样:

ExecStart=/usr/bin/docker daemon --env SERVICE_CHECK_TTL=30s -H fd://

失败的例子是docker.service文件的一部分。 envvariablesSERVICE_CHECK_TTL由在Consul中注册容器的注册器使用。

编辑:我不想在Dockerfile或docker-compose文件中设置此envvariables,如果有另一种方法来设置所有容器相同的envvariables(默认)。 原因是我想避免更改每个Dockerfiles和每个docker-compose文件。

Dockerfile中的ENV指令就是为此而devise的,看一下docker文档,它们非常好。

所以我们假设你所有的容器都使用debian Jessie,你可以把FROM debian ENV xxx yyy放入一个Dockerfile,然后构build你特定的debian docker build -t mydebian . 然后,当你build立你的容器时,你的Dockerfile总是以FROM mydebian开始你现在已经有了你所有容器的特定的ENV值

当然,你可以用Ubuntu,CentOS或者其他的replacedebian

使用此命令(请记住更改Docker主机):

 docker exec -i CONTAINER_ID /bin/bash -c "export DOCKER_HOST=tcp://localhost:port" 

要么

 echo 'export DOCKER_HOST=tcp://localhost:port' >> ~/.bashrc