docker容器中文亂碼的解決方法
概述
docker部署java開發(fā)web項(xiàng)目。nohup顯示打印日志出現(xiàn)中文亂碼,中文顯示為問(wèn)號(hào)???。
環(huán)境
服務(wù)器系統(tǒng):centos7、docker部署項(xiàng)目
具體操作如下
1.查看系統(tǒng)支持和默認(rèn)的字符集,更新yum
locale -a #查看系統(tǒng)支持字符集 echo $LANG #查看默認(rèn)字符集 yum update

2.下載中文包和對(duì)應(yīng)的依賴包
yum install -y kde-l10n-Chinese yum reinstall -y glibc-common rpm -qa | grep glibc-common-2.17-222.el7.x86_64 yum groupinstall “fonts” -y yum install -y system-config-language
3.添加UTF-8和GBK和GB2312字符集
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 localedef -c -f GBK -i zh_CN zh_CN.GBK localedef -c -f GB2312 -i zh_CN zh_CN.GB2312 locale -a #查看

4.修改系統(tǒng)字符集
echo ‘LANG=“zh_CN.UTF-8”' > /etc/locale.conf #修改系統(tǒng)字符集 source /etc/locale.conf echo ‘export LC_ALL=“zh_CN.utf8”' >> /etc/profile source /etc/profile
5.退出容器重啟服務(wù)器
exit reboot
6.檢查容器字符集
echo $LANG echo $LC_ALL touch 中文.txt

后續(xù)一:重啟容器使用nohup命令看日志發(fā)現(xiàn)還是亂碼,再重啟項(xiàng)目jar包反而不亂碼了,emo了
思路:修改自啟動(dòng)系統(tǒng)文件(一般是/etc/rc.d/rc.local)中的java -jar命令(添加-Dfile.encoding=utf-8)
java -Dfile.encoding=utf-8 -jar xxx.jar --spring.profiles.active=pro >nohup.out &
前提條件是java項(xiàng)目Maven打包的時(shí)候添加依賴(原因:Java源代碼->Java字節(jié)碼->JVM->操作系統(tǒng))
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>后續(xù)二:這樣上述改后又出現(xiàn)問(wèn)題了,發(fā)現(xiàn)數(shù)據(jù)庫(kù)插入中文數(shù)據(jù)的時(shí)候數(shù)據(jù)庫(kù)亂碼了,emo++
經(jīng)歷:經(jīng)嘗試,發(fā)現(xiàn)docker run使用 /bin/bash命令初始化的時(shí)候會(huì)亂碼和/usr/sbin/init命令不會(huì),但是容器內(nèi)很多服務(wù)不啟動(dòng) 思路:創(chuàng)建容器run的時(shí)候,給容器定義編碼格式(添加’-e LANG=en_US.UTF-8’)
docker run -dit -p 映射端口:端口 --name=容器名 -e LANG=en_US.UTF-8 鏡像名 /bin/bash
總結(jié)
到此這篇關(guān)于docker容器中文亂碼的解決方法的文章就介紹到這了,更多相關(guān)docker容器中文亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker中控制服務(wù)啟動(dòng)順序的操作方法
Docker是一種開源的應(yīng)用容器引擎,允許開發(fā)者將應(yīng)用及其依賴打包進(jìn)容器,實(shí)現(xiàn)快速、一致的部署,Docker三劍客compose、machine和swarm提供了不同層面的服務(wù)管理和編排,使得在不同環(huán)境中部署應(yīng)用變得簡(jiǎn)單高效2024-10-10
詳解使用export/import導(dǎo)出和導(dǎo)入docker容器
本篇文章主要介紹了詳解使用export/import導(dǎo)出和導(dǎo)入docker容器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Docker部署Golang服務(wù)的實(shí)現(xiàn)步驟
不管是開發(fā)還是生產(chǎn)環(huán)境,通過(guò)docker方式部署服務(wù)都是一種不錯(cuò)的選擇,本文主要介紹了Docker部署Golang服務(wù)的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Docker應(yīng)用之daemon.json使用詳解
用戶解決Docker部署Spring Boot時(shí)JDK8依賴下載失敗問(wèn)題,發(fā)現(xiàn)默認(rèn)無(wú)daemon.json配置文件,手動(dòng)創(chuàng)建并設(shè)置國(guó)內(nèi)鏡像源地址(如阿里云),重啟Docker服務(wù)后成功,需注意配置文件路徑為/etc/docker/daemon.json2025-09-09
docker安裝后導(dǎo)致的網(wǎng)絡(luò)問(wèn)題及解決
這篇文章主要介紹了docker安裝后導(dǎo)致的網(wǎng)絡(luò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問(wèn)題
這篇文章主要介紹了Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02

