如何将环境变量传递给Docker容器?
我是Docker的新手,目前尚不清楚如何从容器访问外部数据库。硬编码连接字符串的最佳方法是吗?
# DockerfileENV DATABASE_URL amazon:rds/connection?string
回答:
您可以使用该-e
标志将环境变量传递到您的容器。
启动脚本的示例:
sudo docker run -d -t -i -e REDIS_NAMESPACE='staging' \ -e POSTGRES_ENV_POSTGRES_PASSWORD='foo' \
-e POSTGRES_ENV_POSTGRES_USER='bar' \
-e POSTGRES_ENV_DB_NAME='mysite_staging' \
-e POSTGRES_PORT_5432_TCP_ADDR='docker-db-1.hidden.us-east-1.rds.amazonaws.com' \
-e SITE_URL='staging.mysite.com' \
-p 80:80 \
--link redis:redis \
--name container_name dockerhub_id/image_name
或者,如果您不希望在命令行中使用ps
,等显示-e
该值,则可以直接从当前环境中获取该值,如果您不带=
:
sudo PASSWORD='foo' docker run [...] -e PASSWORD [...]
如果您有许多环境变量,尤其是要保密的话,可以使用env文件:
$ docker run --env-file ./env.list ubuntu bash
--env-file标志将文件名作为参数,并期望每行采用VAR = VAL格式,模仿传递给–env的参数。注释行仅需加#前缀
以上是 如何将环境变量传递给Docker容器? 的全部内容, 来源链接: utcz.com/qa/403533.html