docker中的环境变量使用与常见问题解决方案

2020-06-17 07:01:36易采站长站整理

要想一劳永逸,最好的方式还是在容器启动或者镜像的环境变量中添加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 '' 'n'`
do
export $item
done

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

总结

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

您可能感兴趣的文章:docker搭建php+nginx+swoole+mysql+redis环境的方法Dockerfile指令与基本结构的讲解Docker 容器日志分析使用docker快速部署Elasticsearch集群的方法使用Docker部署MySQL 5.7&8.0主从集群的方法步骤使用dockercompose搭建springboot-mysql-nginx应用使用Docker部署Spring Boot的方法示例使用Docker部署Nginx+Flask+Mongo的应用详细记一次Docker部署服务的爬坑历程docker打包node项目的过程讲解