docker环境变量设置

我们在运行docker容器应用程序时,需要使用特定的环境变量,并希望环境变量持久化生效,无非从dockerfile和容器入手,

一、dockerfile 添加环境变量

  (1) dockerfile ENV   设置环境变量,该方式直接将变量生成到镜像中

ENV   PATH=/usr/loca/mysql/bin:$PATH  LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

 (2) dockerfile CMD/RUN / ENTRYPOINT

CMD   export PATH=/usr/local/mysql:$PATH
或
RUN   export PATH=/usr/local/mysql:$PATH
或
ENTRYPOINT export PATH=/usr/local/mysql:$PATH

 二、使用容器添加环境变量

 注意,使用容器添加环境变量,如果需要保存到镜像,需要使用docker commit 提交容器的读写层,变成只读层。

(1) 启动容器是指定环境变量

docker run -dti -e PATH=/usr/local/mysql/bin:$PATH --rm  镜像ID
或者
docker run -tid --env PATH=/usr/local/mysql/bin:$PATH --rm  镜像ID

多个变量,使用多个-e /  --env 标记

(2)进入容器内部,添加需改环境变量

docker exec -ti 容器ID/容器名  /bin/bash

可在如下文件内容添加变量

  • ~/.bashrc
  • ~/.profile
  • ~/.bash_profile
  • /etc/profile
  • /etc/environment
  • /etc/bash.bashrc

添加方法:在文件末尾添加类似:

export PATH=/usr/local/mysql/bin:$PATH

添加完成后,使文件生效, 这一步很重要

source   修改的文件

然后可调用  echo 查看

root@363aae75095b:/# echo $PATH
/usr/local/mysql/bin:/usr/local/cuda-9.0/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
root@363aae75095b:/# 

最后一步,提交容器为镜像

docker commit -a 作者 -m 提交日志  -t  容器名或ID 仓库名:镜像版本 

此步骤之后,环境变量就保存到镜像中,可启动镜像,生成容器,然后进入查看验证。

 

总结

        docker 容器环境变量修改,可从两个方面入手,dockerfile 和 容器。两种均有利弊。

       使用dockerfile,导致镜像的移植性降低,只要基于该dockerfile 创建的镜像,都保存该变量,二使用容器修改环境变量,容器一旦停止,变量清除。再次启动需要重新配置,如需要变量持久化,则需要保存容器为镜像。

      1、使用 dockerfile 创建环境变量时,建议最好使用ENV,但这种方式降低了镜像移植性。

      2、进入容器内创建变量,注意使用 source 具体文件  使变量生效。

      3、容器启动时,指定环境变量。

 建议使用 3.  在容器启动时,设置环境变量。

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值