当前位置: 首页 > news >正文

带孩子做网站/企业推广平台排行榜

带孩子做网站,企业推广平台排行榜,web简单网页代码,写作网站保底和全勤的区别前言docker可以为容器配置环境变量。配置的途径有两种:在制作镜像时,通过ENV命令为镜像增加环境变量。在容器启动时使用该环境变量。在容器启动时候,通过参数配置环境变量,如果与镜像中有重复的环境变量,会覆盖镜像的环…

前言

docker可以为容器配置环境变量。配置的途径有两种:

在制作镜像时,通过ENV命令为镜像增加环境变量。在容器启动时使用该环境变量。

在容器启动时候,通过参数配置环境变量,如果与镜像中有重复的环境变量,会覆盖镜像的环境变量。

使用docker exec {containerID} env即可查看容器中生效的环境变量。

[root@localhost ~]# docker exec 984 env

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/default/bin

TERM=xterm

AUTHORIZED_KEYS=**None**

JAVA_HOME=/usr/java/default

HOME=/root

...

容器启动的进程,也就是ENTRYPOINT+CMD中,可以通过相应的系统库获取容器的环境变量。

进入到容器中,查看进程的环境变量,可以通过/proc下进行查看。

cat /proc/{pid}/environ

因此,容器中的环境变量也可以通过在容器中查看1号进程的环境变量来获取。可以通过执行cat /proc/1/environ |tr '\0' '\n'命令进行查看。

[root@localhost ~]# docker exec -it 984 cat /proc/1/environ |tr '\0' '\n'

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/default/bin

TERM=xterm

AUTHORIZED_KEYS=**None**

JAVA_HOME=/usr/java/default

HOME=/root

...

一般来说,从父进程产生出来的子进程都会默认继承父进程的环境变量。因此容器中的各个进程的环境变量应该是大致相同的。当然,在一些特殊的情况下,环境变量也会被重置,导致产生一些误解和问题。下面就对容器中一些常见的情况进行相关讲解。

常见问题及解决

切换不同用户后环境变量消失

在容器中,启动后切换不同用户,比如使用su - admin切换admin用户后,发现配置的容器环境变量丢失了。

这是因为切换用户会导致环境变量重置。因此要使用su -p admin这样的方式,才可以继承先前的环境变量。

我们可以通过help来看下su的相关参数描述。

[root@adworderp-03a38d62-4103555841-m81qk /]# su --help

Usage: su [OPTION]... [-] [USER [ARG]...]

Change the effective user id and group id to that of USER.

...

-m, --preserve-environment do not reset HOME, SHELL, USER, LOGNAME

environment variables

-p same as -m

...

容器中的乱码问题

一些业务在迁移到容器中时,常常报告打印日志乱码。一般的原因是locale没有配置正确导致。

可以通过locale查看当前容器的语言环境。如果没设置,一般会是POSIX。我们可以通过locale -a查看当前容器支持的语言环境,而后根据需要进行设置。

要想一劳永逸,最好的方式还是在容器启动或者镜像的环境变量中添加LANG={xxx},选择合适的语言,从而避免因此导致的乱码问题。

ssh的环境变量问题

容器中启用sshd,可以方便连接和排障,以及进行一些日常的运维操作。

但是很多用户进入到容器中却发现,在docker启动时候配置的环境变量通过env命令并不能够正常显示。

这个的主要原因还是ssh为用户建立连接的时候会导致环境变量被重置。

这样导致的最大问题就是通过ssh启动的容器进程将无法获取到容器启动时候配置的环境变量。

了解了原理后,这个问题有个简单的方法解决。就是可以通过将容器的环境变量重新设置到ssh连接后的session中。

具体的实现方式是,ssh连接后,会自动执行source /etc/profile。

那么我们其实只要在/etc/profile追加几行代码,从1号进程获取容器本身的环境变量,然后循环将环境变量export一下即可。

以下是一个简单的for循环实现。

for item in `cat /proc/1/environ |tr '\0' '\n'`

do

export $item

done

当然,有更简洁的命令,就是export $(cat /proc/1/environ |tr '\0' '\n' | xargs),可以实现同样的效果。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

http://www.lbrq.cn/news/1118773.html

相关文章:

  • 在线定制logo/西安网站seo诊断
  • 旅游网站设计模板图片/文娱热搜榜
  • 民宿客栈网站制作/宝鸡seo排名
  • 济南外贸网站建设公司/杭州网站优化多少钱
  • 深圳购物商城网站建设/某网站seo策划方案
  • wordpress网站打不开/裤子seo标题优化关键词
  • 微信开放平台与个人网站怎么/上海培训机构整顿
  • 凡客诚品官方网店下/seo站长工具查询
  • 做网站需要学会写代码吗/网站优化联系
  • 月编程做网站/网站推广优化公司
  • 老师用什么网站做ppt/怎么找平台推广自己的产品
  • 网站建设论文的摘要/百度应用app
  • 建站系统做网站/今日头条新闻军事
  • 网站内容批量替换/引流软件
  • 门户网站建设自查/如何让自己的网站被百度收录
  • 网站建设价格便宜/如何免费搭建自己的网站
  • 泾川县建设局网站/网站建设公司大全
  • 深圳网站建设外贸公司/建站cms
  • java jsp做网站/百度客户服务电话
  • 网站做优化一开始怎么做/推广如何做网上引流
  • 网站如何做QQ登录/百度指数明星搜索排名
  • 个人网站做哪些内容/推广专员
  • 唐山中小企业网站制作/网络营销团队
  • 工商登记网站/百度网盘app
  • 武汉企业管理培训课程/沈阳网站制作优化推广
  • wordpress备份数据库/排名优化网站
  • 郑州 (网站建设/百度推广费用多少钱
  • 网站的运营推广方案/企业营销策划公司
  • 做网站的常识/宁波seo企业推广
  • 做网站怎建立ftp和数据库/营销技巧和营销方法培训
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • 横向移动(下)
  • Haproxy代理服务(小白的“升级打怪”成长之路)
  • 原点安全签约金网络数科,共建一体化数据安全防护体系
  • 关于list
  • 综合网络组网实验(机器人实验)