在使用docker構建容器鏡像或者操作容器時,有時候會遇到亂碼的情況。這是因為容器內部的字符集和宿主機的字符集不一致所致。解決這個問題有如下幾種方法:
1. 設置LANG環境變量
docker run -it -e LANG=en_US.UTF-8 鏡像名稱 /bin/bash
在運行docker容器時,添加-e參數設置LANG環境變量為en_US.UTF-8。
2. 映射宿主機字符集
docker run -it -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -v /etc/locale.conf:/etc/locale.conf:ro 鏡像名稱 /bin/bash
在運行docker容器時,添加-v參數映射宿主機的/etc/localtime、/etc/timezone、/etc/locale.conf等文件到容器內部。
3. 修改dockerfile
FROM 鏡像名稱
ENV LANG C.UTF-8
在dockerfile文件中添加ENV命令設置LANG環境變量為C.UTF-8。