docker 容器中文乱码

解决方案

针对已运行容器

  1. 进入容器内:docker exec -it 容器id bash

  2. 查看当前容器环境变量 LANG 值:locale

    发现其并未配置

  3. 查看系统支持的所有本地语言环境:locale -a

  4. 在当前容器终端临时配置环境变量 LANG 和 LC_ALL 值为 utf-8 即可立即正常查看中文:

    export LANG=C.utf8 LC_ALL=C.UTF-8
    

针对 Dockerfile

同上原理,在 Dockerfile 中添加环境变量即可

ENV TZ=Asia/Shanghai LANG=C.utf8 LC_ALL=C.UTF-8

针对 docker run

同上原理,docker run 时新增环境变量即可

Plain Text docker run -d .... -e TZ=Asia/Shanghai -e LANG=C.utf8 -e LC_ALL=C.utf8 .... 镜像名称:镜像tag

参考文档:

  1. 面试官:处理Docker容器输出中文-乱码

  2. Dockerfile 配置 ENV 环境变量