在命令行中,输入中文有乱码或输入错误:
我想在这里输入:中文,但有乱码。
![]()
并且,我在之前已经创建好镜像,通过镜像生成了容器。
1.使用locale查看当前容器系统中使用的字符集。
2.使用locale -a查看当前容器系统支持的字符集。
3.建议在一些博客中修改/etc/profile,增加系统变量LANG等。
1)/etc/profile:本文件为系统中的每个用户设置环境信息。当用户第一次登录时,文件被执行. 并从/etc/profile.d在目录的配置文件中收集shell的设置. 注:在这里,我们设置了所有用户都可以使用的全局变量。 2)/etc/bashrc:为每一个操作bash shell用户执行此文件.当bash shell打开时,文件被读取.
但可以看出,/etc/profile只有当用户第一次登录时,它才会被执行。因此,当您在文件中修改时docker commit之后,更新后的操作容器不会再生效。
所以,在这里,我修改/etc/bashrc,更新系统字符集变量:
export LANG="C.UTF-8" export LANGUAGE="C.UTF-8" export LC_ALL="C.UTF-8"
修改后记得生效:
source /etc/bash.bashrc
再次通过locale检查系统字符集是否更新:
root@7bfce1075a4b:/workspace# locale LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=C.UTF-8
最后,可以看出,中文可以在命令行中正常输入:
root@7bfce1075a4b:/workspace# 中文
最后,别忘了提交镜像更新:您可以选择覆盖当前的镜像,只要仓库名称:标签名与您想要覆盖的相同
docker commit -m="run command" -a="wkn" 7bfce1075a4b wkn/pattern-ai:torch_1.11.0_v
新容器再次通过更新后的镜像运行:
wkn@MightyDragon:~$ docker commit -m="run command" -a="wkn" 7bfce1075a4b wkn/pattern-ai:torch_1.11.0_v1 sha256:18b066686fe87306bb1b09e2e98c89af04a23ec6054edbf3cc73bd1dc72826a7 wkn@MightyDragon:~$ docker run -v /home/wkn:/home/wkn -it --gpus '"device=0,1"' 18b066686fe8 root@05c9c8706296:/workspace# 中文
可见中文可以正常输入~