采用 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
