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. 在容器启动时,设置环境变量。
docker环境变量设置相关推荐
- docker添加新的环境变量_Docker容器环境变量设置与查看
设置环境变量 在编写Dockerfile时, 我们可以通过ENV来为Docker容器设置相关的环境变量,设置的环境变量在Docker容器中可以通过环境变量来进行引用. Docker容器环境变量设置方法 ...
- ubuntu系统php环境变量设置,Ubuntu系统环境变量详解
使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...
- 1.2 JDK安装与环境变量设置
我们会以Java语言来进行脚本编写,所以需要进行JDK安装以及必要的环境变量设置.本书会使用JDK 8的版本,而不会使用JDK 9(太新的有的软件不兼容). 可以直接取Oracle官网选择相应的JDK ...
- ubuntu18.04.4 环境变量设置 export path
ubuntu18.04.4 环境变量设置 export path 1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设 ...
- jar java classpath_win7中java编程工具安装 java环境变量设置
win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...
- java环境变量设置
一,java环境变量设置 - 精简版 1.右键打开我的电脑->属性->高级->环境变量 2.新建系统变量JAVA_HOME和CLASSPATH 变量名(N):JAVA_HOME 变 ...
- Linux环境变量设置中配置文件分析(/etc/profile,~/.bashrc等)(转)
说明:在研究中发现,对于不同版本的Linux系统有着不同的文件,但是总的入口是不变的/etc/profile,下面只是展示加载顺序的研究过程,所以会有些系统没有这个文件等问题. 一.配置文件与作用域: ...
- JDK1.6安装与环境变量设置详细图解
JDK1.6安装图解与环境变量设置为初学者详细介绍了JDK从下载到安装,整个开发伊始的那些事究竟是如何呢?让我们开始吧. 一.JDK1.6安装图解之JDK1.6的下载 JDK现在最新版本是JDK1.6 ...
- Linux下环境变量设置
1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...
最新文章
- 5G NGC — 关键技术 — MEC 边缘云
- An internal error occurred during: Launching MVC on Tomcat 6.x.
- CVPR 2018 MCCT:《Multi-Cue Correlation Filters for Roubust Visual Tracking》论文笔记
- 十四、Java练习:一个猜数游戏
- android模糊检索_【android学习笔记】ormlite学习之模糊搜索like
- 单片机c语言随机数,单片机C语言如何产生随机数
- mysql 日志记录 archive_完美起航-Mysql日志管理、备份与恢复
- 北方网-ios预科班
- springboot中service层注入的是实现类,但Controller层接收的是接口
- std::map的使用
- 赛锐信息:SAP系统业务审计介绍
- eclipse.ini
- MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
- oppo r17进入9008模式
- M56 智慧井盖的技术应用
- 一次服务端大面积接口响应时间骤增问题排查
- 字符流何用, 字节流呢
- 如何在Windows命令行中使用Unicode字符?
- Centos 7.2内核版本升级(无外网)
- 在Unity3D中使用精灵动画引擎制作动画的两种方法
热门文章
- 程序员:这10种糟糕的程序命名,你遇到过几个?
- Git、GitLib、GitHub和GitLab
- 【摸鱼系列】3万张4K壁纸还不够你换的吗?python还可以实现更多采集可能
- 【蓝桥OJ—C语言】高斯日记、马虎的算式、第39级台阶
- AGXNet: Anatomy-Guided Weakly-Supervised Abnormality Localization in Chest X-rays
- 使用nexus-3.10x以上版本构建maven私服仓库
- 销售人员提升销售业绩的方法有哪些?
- 西雅图生物科技公司裁员12%!
- 虚拟视点合成 | 3D-Warping
- 聊聊如何建立深度工作的模式