docker配置容器——环境变量

很多时候,我们需要为运行在容器中的应用程序提供一些配置。配置通常用于允许同一个容器在完全不同的环境中运行,例如开发、测试或生产环境。在 Linux 中,配置值通常通过环境变量提供。我们已经了解到,在容器内运行的应用程序与其主机环境完全隔离。因此,我们在主机上看到的环境变量与我们在容器内看到的环境变量是不同的。

让我们看看主机上的定义来证明这一点:

1. 使用此命令可显示为终端会话定义的所有环境变量列表:

export

2. 接下来,让我们在 Alpine 容器中运行一个 shell:

docker container run --rm -it alpine /bin/sh

需要提醒的是,我们使用 --rm 命令行参数是为了在停止运行后不必移除悬空容器,有关悬空容器的清理,可以查看我的文章:保持docker环境干净-CSDN博客 

3. 用这条命令列出我们可以看到的环境变量

export

### 如何在 Docker 容器中设置和使用环境变量 #### 使用 `ENV` 指令在 Dockerfile 中定义环境变量 可以在构建镜像的过程中通过 Dockerfile 的 `ENV` 指令来设定环境变量。这使得每次启动基于该镜像创建的新容器时都会自动拥有这些预设好的键值对。 ```dockerfile FROM ubuntu:latest ENV MY_ENV_VARIABLE=my_value CMD ["echo", "$MY_ENV_VARIABLE"] ``` 此段代码展示了怎样利用 `ENV` 来声明名为 `MY_ENV_VARIABLE` 并赋给它字符串 `"my_value"` 值的方法[^2]。 #### 进入正在运行的容器并查看已有的环境变量 对于已经处于活动状态下的实例而言,可以直接连接到其中并通过命令行工具读取当前生效的所有环境参数: ```bash docker exec -it container_name_or_id env ``` 上述命令会返回一系列由等号分隔开来的名称与对应值得组合列表[^1]。 #### 当前环境中不存在特定项的情况处理办法 当试图访问一个尚未被初始化过的环境条目时,默认情况下 shell 或应用程序将会接收到空串或者是 null 类型的数据作为回应;因此建议开发者们提前做好相应的错误捕捉机制以免造成不必要的麻烦。 #### 更新已有容器内的配置而不重启服务 值得注意的是,在不终止进程的前提下直接编辑位于宿主机上的 `/var/lib/docker/containers/<container-id>/config.v2.json` 文件中的相关内容并不能立即反映至目标单元内部——因为后者只会于初次加载期间从磁盘载入一次性的静态副本而非实时同步更新后的版本。所以为了使改动生效通常还是得先暂停再重新激活关联的服务才行[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面朝大海,春不暖,花不开

您的鼓励是我最大的创造动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值