解决docker容器中Centos7系统的中文乱码

采用 docker pull docker.io/centos 下载的基础镜像,是不带中文环境的,可以进入容器内使用 locale 查看当前语言环境

创建一个centos7容器

# docker run --name node1 -h node -d -i -t centos /bin/bash

进入容器

# docker exec -it node1 bash

查看当前语言环境

# locale

[root@localhost ~]# docker run --name node1 -h node -d -i -t centos /bin/bash
ba917b167d1bcc548176390d2f3b485599c9bb53362b4876fe80932463ef1d97
[root@localhost ~]#
[root@localhost ~]# docker exec -it node1 bash
[root@node /]#
[root@node /]# locale
LANG= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= [root@node /]#

 不带中文环境

[root@node /]# cd
[root@node ~]#
[root@node ~]# ls
anaconda-ks.cfg
[root@node ~]# [root@node ~]# mkdir 杜 [root@node ~]# [root@node ~]# ls anaconda-ks.cfg ??? [root@node ~]#

添加中文环境编码,安装两个包

# yum install kde-l10n-Chinese -y

# yum install glibc-common -y

转化语言环境和字符集

# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

添加定义到系统环境变量

# vi /etc/profile

export LANG=zh_CN.utf8

执行生效

# source /etc/profile

[root@node ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
[root@node ~]# vi /etc/profile
[root@node ~]# source /etc/profile
[root@node ~]# [root@node ~]# ls anaconda-ks.cfg 杜 [root@node ~]#

使用Dockerfile 构建一个新的带有中文环境的镜像

FROM centos
MAINTAINER djl
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 #RUN export LANG=zh_CN.UTF-8 #RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf #ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8

参考博客:

Dockerfile 创建容器内中文乱码问题解决

https://blog.csdn.net/weixin_39153210/article/details/83617792

解决docker容器中Centos7系统的中文乱码

https://blog.csdn.net/xw_2_xh/article/details/86497636

采用 docker pull docker.io/centos 下载的基础镜像,是不带中文环境的,可以进入容器内使用 locale 查看当前语言环境

创建一个centos7容器

# docker run --name node1 -h node -d -i -t centos /bin/bash

进入容器

# docker exec -it node1 bash

查看当前语言环境

# locale

[root@localhost ~]# docker run --name node1 -h node -d -i -t centos /bin/bash
ba917b167d1bcc548176390d2f3b485599c9bb53362b4876fe80932463ef1d97
[root@localhost ~]#
[root@localhost ~]# docker exec -it node1 bash
[root@node /]#
[root@node /]# locale
LANG= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= [root@node /]#

 不带中文环境

[root@node /]# cd
[root@node ~]#
[root@node ~]# ls
anaconda-ks.cfg
[root@node ~]# [root@node ~]# mkdir 杜 [root@node ~]# [root@node ~]# ls anaconda-ks.cfg ??? [root@node ~]#

添加中文环境编码,安装两个包

# yum install kde-l10n-Chinese -y

# yum install glibc-common -y

转化语言环境和字符集

# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

添加定义到系统环境变量

# vi /etc/profile

export LANG=zh_CN.utf8

执行生效

# source /etc/profile

[root@node ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
[root@node ~]# vi /etc/profile
[root@node ~]# source /etc/profile
[root@node ~]# [root@node ~]# ls anaconda-ks.cfg 杜 [root@node ~]#

使用Dockerfile 构建一个新的带有中文环境的镜像

FROM centos
MAINTAINER djl
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 #RUN export LANG=zh_CN.UTF-8 #RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf #ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8

参考博客:

Dockerfile 创建容器内中文乱码问题解决

https://blog.csdn.net/weixin_39153210/article/details/83617792

解决docker容器中Centos7系统的中文乱码

https://blog.csdn.net/xw_2_xh/article/details/86497636

猜你喜欢

转载自www.cnblogs.com/netflix/p/12206091.html