Docker CentOS7 中文支持

Docker CentOS7 中文支持

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

使用容器 centos 默认环境中无中文

  1. 进入容器

    1
    # docker run --rm -it centos:7 bash
  2. 通过 locale 可看到当前环境中无中文相关(zh_CN.utf8

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 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=

    使用 echo 时可发现命令行中中文出现乱码

  3. 添加中文环境包

    1
    2
    3
    # yum -y groupinstall Fonts
    # yum -y install kde-l10n-Chinese
    # yum -y reinstall glibc-common
  4. 转化语言环境和字符集

    1
    # localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
  5. 设置环境变量,查看结果

    1
    # export LC_ALL=zh_CN.UTF-8

    再次查看 locale

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # locale
    LANG=
    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

    使用 echo 测试

  6. Dockerfile 示例:

    Dockerfile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ARG VERSION=7
    FROM centos:${VERSION}

    RUN yum -y groupinstall Fonts \
    && yum -y install kde-l10n-Chinese \
    && yum -y reinstall glibc-common \
    && localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

    ENV LC_ALL=zh_CN.UTF-8
评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...