docker web中文亂碼的解決方法:1、使用locale查看目前容器的系統所使用的字元集;2、使用「locale -a」查看目前容器的系統支援可以使用的字元集;3、修改“/etc/profile”,新增系統變數LANG即可。
本教學操作環境:Windows7系統、Docker 20.10.11版、Dell G3電腦。
docker web 中文亂碼怎麼辦?
解決docker容器中文字元亂碼問題
在命令列中,輸入中文出現亂碼或鍵入錯誤的情況:
這裡我想輸入:」中文“,但是出現亂碼。
並且,我在之前已經建立好鏡像,透過鏡像產生了容器。
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# 中文
可以看出,中文能夠正常輸入了~
推薦學習:《docker影片教學》
以上是docker web 中文亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!