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