Docker解决容器内中文乱码问题

803 阅读1分钟

服务部署后,发现页面请求返回的数据是???,乱码了....

因为采用 docker pull docker.io/centos 下载的基础镜像,是不带中文环境的。

下面使用Dockerfile 构建一个新的带有中文环境的镜像,设置中文UTF-8字符集,解决乱码问题。

# 基于centos:7
FROM centos:7
# 替换yum源
ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
#设置中文UTF-8字符集
RUN yum -y install kde-l10n-Chinese \
        && yum -y reinstall glibc-common \
        && localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 \
        && echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf \
        && source /etc/locale.conf \
        && yum clean all
ENV LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8

构建新的镜像

docker build -t  centos_zh:7 .

启动容器,查看字符集,设置成功。