解決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 LC_ALL=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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM