docker 中文乱码问题

若在docker容器里显示不了中文,则很可能是语言包没有设置好

#查看容器ID
docker ps
#进入容器
docker exec -it {containerId} bash
#查看语言包
locale
#若如下
LANG=
LANGUAGE=
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"
因为POSIX不支持中文
#查看所有语言包
locale -a
#若如下
C
C.UTF-8
POSIX
C.UTF-8是支持中文,只要我们重新创建容器时指定语言包即可,下面以mariadb为例
#删除原来的容器
docker stop {containerId}
docker rm {containerId}
#查看所有镜像
docker images
#bfrt45重新创建容器,指定语言包
docker run -p 3306:3306 --name mymariadb  -e LANG=C.UTF-8 -e MYSQL_ROOT_PASSWORD=123456 -d mariadb
验证
此时再次进入容器,可以发现可以打中文了,如
touch 这是中文名.txt

你可能感兴趣的:(docker 中文乱码问题)