• docker 动态修改容器的环境变量


    docker 环境变量 怎么修改?

    1 exec 进入容器后修改。 

    可以修改,但是 测试证明, 没有用, 重新进入容器 之前的修改又看不见了。 可能是 修改没有被保存。 

    每次 有客户端连入容器呢, 容器可能要读取一下 .bash_rc 之类的文件... 

    退出exec 之后, docker exec  umc-fileserver  env 也可以看到刚刚做的修改。但  通过 inspect 看不到修改。

    而且 restart 容器 之后 修改丢失!

    [root@localhost ~]# docker exec umc-fileserver env
    PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    HOSTNAME=localhost.localdomain
    BOOT_CONFIG= --spring.profiles.active=prod --spring.cloud.nacos.config.server-addr=192.169.7.148:8848 --spring.cloud.nacos.config.ext-config[0].data-id=umc-fileserver-node1.properties
    JAVA_OPTS=-Xmx2g -Xms2g -Xmn2g -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/dump.log
    LANG=en_US.UTF-8
    JAVA_HOME=/usr/local/openjdk-8
    JAVA_VERSION=8u265
    LANGUAGE=en_US:en
    LC_ALL=en_US.UTF-8
    TZ=Asia/Shanghai
    HOME=/root

    2  shell 变量?

    3 修改容器中的  /etc/bash.bashrc

    测试发现, 这个有效! 但是 docker exec  umc-fileserver  env 还是 原始run 的环境变量, 不过好像没关系。 重启容器之后, 还是 有效!

    有效是有效, 但是!  发现 根本不起作用!  我去! 实际, 还是 读取

    需要重启吗? 之后, 一般来说肯定需要重启。 为什么呢?

    我猜, 重启的时候,容器会从镜像读取原始数据,从而覆盖已经创建的部分容器的内容。(但是我并没有验证, 待继续分析..)

    ————

    试过很多方法,结果发现是只能修改 容器部分的设置,但是环境变量基本是不能修改的,只能删除老的,然后重新创建一个。

    其实呢,删除老的,然后重新创建一个 也是非常简单方便的事情。 一般来说,无非就是怕丢数据,因此,只要我们在启动容器直接把卷挂载出来,那就没事。 因为删除容器并不会把主动挂在的 卷删除。

    因此,我们只要使用相同的方式的 挂载卷路径,那么文件不会丢失。

    如果非要想着去修改容器的环境比较,非常麻烦,而且重启之后又失效,非常糟心,低效而又不好玩!

    总之,目前我只能放弃这个“docker 动态修改容器的环境变量” 想法了!


    版权声明
    本文原创发表于 博客园,作者为 阿K .     本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
    欢迎关注本人微信公众号:觉醒的码农,或者扫码进群:

  • 相关阅读:
    7个技巧,帮你完美搞定网页首图设计(必看)
    听说你想跳槽?ARM和PowerPC分析,你知道吗?(速进)
    C语言必学7大步骤!(必看)
    单片机电机必不可少的30条常识!你知道吗?(欢迎大家进行补充)
    单片机外围电路设计攻略(终结版)! 不看哭一年!
    3天”速成“嵌入式之后,我明白了六件事!!!
    前端就不需要掌握算法与数据结构?
    嵌入式软件必学知识总结!
    字节跳动2017客户端工程师实习生笔试题-第四题
    并查集
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/15482054.html
Copyright © 2020-2023  润新知