社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker使用卷共享环境变量

white_gecko • 5 年前 • 1689 次点击  

如何共享环境变量,因为 --link 功能已弃用? https://docs.docker.com/network/links/ )国家

警告: --链接 最终被移除。除非你绝对需要继续使用 我们建议您使用用户定义的网络 两个容器之间的通信而不是使用 --链接 . 一个 用户定义的网络不支持的功能 正在容器之间共享环境变量。但是,您可以使用其他机制(如卷)来共享环境 容器之间的变量以更可控的方式。

我遇到的问题是,我想在启动容器时将数据库密码设置为环境变量。其他一些容器将数据加载到数据库中,因此需要连接到数据库并提供凭据。到目前为止,加载容器通过读取环境变量自行发现密码。如果没有 --链接 ?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53794
 
1689 次点击  
文章 [ 1 ]  |  最新文章 5 年前
larsks
Reply   •   1 楼
larsks    5 年前

通常,您是通过显式地向其他容器提供相同的环境变量来实现的。如果你用的是 docker-compose.yml

version: 3

services:
  database:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD

  frontend:
    image: webserver
    environment:
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD

如果你设置了 MYSQL_ROOT_PASSWORD .env 文件,将为两个 database frontend 集装箱。如果你不使用 docker-compose database.env 包含:

MYSQL_ROOT_PASSWORD=secret

docker run --env-file database.env ... .


文件夹 . 因此,另一种选择是让数据库容器将包含密码的文件写入共享卷,然后在其他容器中读取。