1. 进入容器并查看语言区域设置,默认配置不是zh_CN.UTF-8
[root@jorelSpace smbSer]# docker run -it --rm centos:7 bash
[root@7574cbea352f /]# 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=
2. 查看现有语言库,没有中文语言库
[root@7574cbea352f /]# locale -a
C
POSIX
en_AG
en_AG.utf8
en_AU
8591
...
en_US.utf8
en_ZA
en_ZW
en_ZW.iso88591
3. 安装中文语言包
步骤:
- 更新软件库
- 安装中文语言包
- 重新安装glibc共享库,敲黑板!!
# 敲黑板:斜杠( \ )后边不能有空格
[root@7574cbea352f /]# yum -y update && \
yum install -y kde-l10n-Chinese && \
yum -y reinstall glibc-common
4. 生成中文语言库并配置
# 使用命令生成中文语言库
[root@7574cbea352f /]# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 导入中文支持环境变量
[root@7574cbea352f /]# export LANG=zh_CN.UTF-8
[root@7574cbea352f /]# export LC_ALL=zh_CN.UTF-8
# 时区改为东八区,提示覆写输入y并回车
[root@7574cbea352f /]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? y
5. 查看默认语言
[root@7574cbea352f /]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
6. Dockerfile示例
之所以把命令用&& \
连接在一行执行,是因为可以减少镜像层级。
文件很简单,就不细说明了。
FROM centos:7
RUN yum clean all && \
yum makecache && \
yum -y -q update && \
yum install -y -q kde-l10n-Chinese && \
yum -y -q reinstall glibc-common && \
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
\cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV LANG=zh_CN.UTF-8 \
LC_ALL=zh_CN.UTF-8