动态修改docker容器环境变量


背景: 运行一个容器 发现缺少了环境变量 又不想去重新run一个容器 这样的场景可以通过修改文件的方式实现

示例:

1.运行一个centos镜像

[root@localhost ~]# docker run -it -d --name centos centos
37c852b70138b2800ec2063e0e8b88f731cb84dc3dfe44274e5baf31f2e5578d
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
37c852b70138        centos              "/bin/bash"         3 seconds ago       Up 2 seconds                            centos

运行docker inspect centos命令去查看有哪些环境变量,会找到这样的一个配置,这个就是容器运行时的环境变量,现在我们去修改这个环境变量
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],

2.停止docker服务

systemctl stop docker

3.修改配置文件

找到容器的配置文件/var/lib/docker/containers/容器id/config.v2.json,
找到"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"]
把需要添加的环境变量添加上去,"Env":["TZ=Asia/Shanghai","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"]
这里我添加了个"TZ=Asia/Shanghai"环境变量 如果需要添加多个环境变量,以逗号隔开就行

4.启动docker服务

systemctl start docker

5.启动容器

docker start centos

6.查看环境变量是否修改成功

docker inspect centos

"Env": [
                "TZ=Asia/Shanghai",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],

命令会有以上这样的输出,表示我们已经把环境变量修改完成了!!!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM