我是Docker的新手,不清楚如何从容器中访问外部数据库。在连接字符串中硬编码的最佳方法是什么
#Dockerfile
环境数据库URL亚马逊:rds/连接?字符串
您可以使用-e标志将环境变量传递给容器
启动脚本中的一个示例:
sudo docker run-d-t-i-e REDIS\u 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\
–链接redis:redis\
–名称容器\u名称dockerhub\u id/图像\u名称
或者,如果您不想在命令行上显示值,而该值将由ps等显示,-e可以从当前环境中提取值,如果您只是在不使用=的情况下给出该值:
sudo PASSWORD='foo'docker run[…]-e PASSWORD[…]
如果您有许多环境变量,特别是如果它们是机密的,则可以使用env文件:
$docker run--env文件。/env.list ubuntu bash
–env file标志将文件名作为参数,并希望每一行都采用VAR=VAL格式,模仿传递给–env的参数。注释行只需加前缀#