Docker容器环境变量配置及系统容器中字符乱码处理

Docker环境变量设置

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

(1)查看环境变量

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

[root@tandelint bin]# docker exec a3588170aca6 env
PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=a3588170aca6
HOME=/root

(2)环境变量配置准备

先安装vim的l命令

root@a3588170aca6:~# apt-get update
Hit:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic InRelease
root@a3588170aca6:~# apt-get install vim

以上安装成功后,使用vi或者vim编辑一个文件,添加环境变量。如果能打开则说明成功了。下一步就是配置环境变量,和linux的环境变量配置相同。vim /etc/profile或者vim ~/.bashrc都可以,

(3)配置环境变量

[root@tandelin ~]# vim /etc/profile
.....
.....
fi
.....
export PATH=$PATH:/usr/lib/oracle/bin

[root@tandelin ~]#source /etc/profile

[root@tandelin ~]#docker exec a3588170aca6 env

具体方法可查看链接如下:
原文链接:https://blog.csdn.net/tandelin/article/details/98624599

Docker系统字符设置

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

可以通过locale查看当前容器的语言环境。如果没设置,一般会是POSIX。我们可以通过locale -a查看当前容器支持的语言环境,而后根据需要进行设置。
要想一劳永逸,最好的方式还是在容器启动或者镜像的环境变量中添加LANG={xxx},选择合适的语言,从而避免因此导致的乱码问题。

[root@tandelin ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
[root@tandelin ~]# 

方法

方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030
该文件在用户目录下,对于其他用户,也必须相应修改该文件。

使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码

方法二:
修改/etc/sysconfig/i18n文件

#LANG=“en_US.UTF-8”
#SUPPORTED=“en_US.UTF-8:en_US:en”
#SYSFONT=“latarcyrheb-sun16”

修改为:

LANG=“zh_CN.GB18030”
LANGUAGE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=“zh_CN.GB18030:zh_CN:zh”
SYSFONT=“lat0-sun16”
SYSFONTACM=“8859-15”

以上都不行的话,请参考https://www.cnblogs.com/h2zZhou/p/5324385.html

上一篇:在matplotlib中曲线的绘制,主要是通过类 matplotlib.lines.Line2D 来完成的。


下一篇:ubuntu 20.04 中文环境和英文环境切换