欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker解決容器中文字體亂碼問題的終極方案分享

 更新時(shí)間:2025年09月16日 09:44:49   作者:寒冰碧海  
在騰訊云服務(wù)器使用Docker部署Java后端服務(wù)時(shí),經(jīng)常遇到生成圖片、PDF或報(bào)表時(shí)中文顯示為方框的問題,這是因?yàn)榛A(chǔ)Docker鏡像通常不包含中文字體,下面我們就來看看如何解決吧

解決痛點(diǎn):在Docker容器中運(yùn)行的Java應(yīng)用生成圖片、PDF時(shí)中文顯示為方框?字體缺失導(dǎo)致報(bào)表亂碼?本文一站式解決!

問題背景

在騰訊云服務(wù)器使用Docker部署Java后端服務(wù)時(shí),經(jīng)常遇到生成圖片、PDF或報(bào)表時(shí)中文顯示為方框的問題。這是因?yàn)榛A(chǔ)Docker鏡像通常不包含中文字體,導(dǎo)致Java應(yīng)用無法正確渲染中文文本。

解決方案:四步添加中文字體

步驟1:獲取字體文件

從Windows系統(tǒng)拷貝所需字體(推薦使用宋體simsun.ttc):

打開Windows字體目錄:C:\Windows\Fonts

復(fù)制字體文件(我的操作是全放)

通過FTP/SFTP或SCP上傳到Linux服務(wù)器

步驟2:宿主機(jī)準(zhǔn)備字體目錄

在服務(wù)器上創(chuàng)建字體存儲目錄并復(fù)制字體:

# 創(chuàng)建字體目錄(推薦使用標(biāo)準(zhǔn)位置)
sudo mkdir -p /usr/local/share/fonts/chinese

# 復(fù)制字體到該目錄
sudo cp /tmp/simsun.ttc /usr/local/share/fonts/chinese/

# 設(shè)置權(quán)限
sudo chmod 644 /usr/local/share/fonts/chinese/*

步驟3:復(fù)制字體到Docker容器

將字體復(fù)制到運(yùn)行中的容器內(nèi):

# 語法:docker cp <宿主機(jī)路徑> <容器名>:<容器內(nèi)路徑>
docker cp /usr/local/share/fonts/chinese/simsun.ttc your-container:/usr/share/fonts/

# 示例(容器名為app-server):
docker cp /usr/local/share/fonts/chinese/simsun.ttc app-server:/usr/share/fonts/

步驟4:容器內(nèi)安裝字體支持

進(jìn)入容器安裝字體工具并刷新緩存:

# 進(jìn)入容器
docker exec -it your-container bash

查看鏡像類型:

command -v apt-get || command -v yum || command -v apk

結(jié)果判斷?:

  • /usr/bin/apt-get → Debian/Ubuntu
  • /usr/bin/yum 或 /usr/bin/dnf → CentOS/RHEL
  • /sbin/apk → Alpine

根據(jù)鏡像類型選擇安裝命令:

# ?? Debian/Ubuntu 鏡像
apt-get update && apt-get install -y fontconfig

# ?? CentOS/RHEL 鏡像
yum install -y fontconfig

# ?? Alpine 鏡像
apk update && apk add fontconfig

刷新字體緩存并驗(yàn)證:

# 刷新字體緩存
fc-cache -fv

# 驗(yàn)證字體安裝
fc-list | grep -i "simsun"
# 預(yù)期輸出:/usr/share/fonts/simsun.ttc: SimSun,宋體:style=Regular

進(jìn)階方案:構(gòu)建時(shí)集成字體

創(chuàng)建自定義Dockerfile,永久解決字體問題:

FROM openjdk:11-jre-slim

# 1?? 安裝字體工具
RUN apt-get update && apt-get install -y fontconfig

# 2?? 創(chuàng)建字體目錄
RUN mkdir -p /usr/share/fonts/chinese

# 3?? 添加字體文件(需提前放在Dockerfile同目錄的fonts/下)
COPY fonts/simsun.ttc /usr/share/`在這里插入代碼片`fonts/chinese/

# 4?? 刷新字體緩存
RUN fc-cache -fv

# 后續(xù)構(gòu)建步驟...

構(gòu)建命令:

docker build -t java-with-chinese-fonts .

注意事項(xiàng)

字體授權(quán):確保使用的字體有合法授權(quán),商業(yè)字體需購買授權(quán)

容器重啟:動態(tài)添加的字體在容器重啟后會丟失,推薦使用Dockerfile方案

字體路徑:Java應(yīng)用默認(rèn)搜索/usr/share/fonts,如需自定義路徑需設(shè)置環(huán)境變量:

ENV JAVA_FONTS /usr/share/fonts/chinese

字體精簡:Alpine鏡像建議使用精簡字體包:

apk add --no-cache font-noto-cjk

總結(jié)

通過以上步驟,我們成功解決了Docker容器中Java應(yīng)用的中文字體缺失問題。關(guān)鍵點(diǎn):

步驟關(guān)鍵操作命令示例
字體準(zhǔn)備從Windows提取scp fonts user@server:/tmp
宿主機(jī)存儲創(chuàng)建字體目錄mkdir /usr/local/share/fonts/chinese
容器復(fù)制動態(tài)添加字體docker cp font.ttc container:/usr/share/fonts
容器配置安裝fontconfigapt-get install fontconfig && fc-cache -fv

最佳實(shí)踐:對于生產(chǎn)環(huán)境,強(qiáng)烈推薦使用Dockerfile構(gòu)建包含字體的自定義鏡像,一勞永逸解決字體問題!

到此這篇關(guān)于Docker解決容器中文字體亂碼問題的終極方案分享的文章就介紹到這了,更多相關(guān)Docker容器中文字體亂碼解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker修改容器內(nèi)存大小的實(shí)現(xiàn)方式

    docker修改容器內(nèi)存大小的實(shí)現(xiàn)方式

    我們使用docker時(shí),經(jīng)常會遇到docker容器使用內(nèi)存大于docker宿主機(jī)內(nèi)存,導(dǎo)致宿主機(jī)奔潰,從而影響其他宿主機(jī)上容器的運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于docker修改容器內(nèi)存大小的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 用Docker搭建nextcloud個(gè)人網(wǎng)盤教程

    用Docker搭建nextcloud個(gè)人網(wǎng)盤教程

    大家好,本篇文章主要講的是用Docker搭建nextcloud個(gè)人網(wǎng)盤教程,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12
  • Windows安裝docker-desktop的詳細(xì)步驟

    Windows安裝docker-desktop的詳細(xì)步驟

    這篇文章主要介紹了Windows安裝docker-desktop的詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • docker start啟動容器后仍然exit狀態(tài)的解決

    docker start啟動容器后仍然exit狀態(tài)的解決

    這篇文章主要介紹了docker start啟動容器后仍然exit狀態(tài)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Docker如何使用Dockerfile構(gòu)建鏡像

    Docker如何使用Dockerfile構(gòu)建鏡像

    本篇文章主要介紹了Docker如何使用Dockerfile構(gòu)建鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • docker容器增加端口映射全過程(修改配置文件方式)

    docker容器增加端口映射全過程(修改配置文件方式)

    文章詳細(xì)描述了如何通過修改Docker容器的配置文件來增加端口映射,以解決已經(jīng)運(yùn)行的容器需要增加端口映射的問題,以MySQL容器為例進(jìn)行了具體操作步驟的說明
    2024-11-11
  • Docker-compose部署gitlab的方法步驟

    Docker-compose部署gitlab的方法步驟

    這篇文章主要介紹了Docker-compose部署gitlab的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 使用Docker部署todo任務(wù)管理器的實(shí)現(xiàn)

    使用Docker部署todo任務(wù)管理器的實(shí)現(xiàn)

    本文介紹使用Docker部署Todo任務(wù)管理器的全過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • 在Docker容器中使用Arthas的詳細(xì)步驟

    在Docker容器中使用Arthas的詳細(xì)步驟

    本文不是介紹arthas怎么用的。這里要說的是,如何在我們的docker容器中,使用arthas,對如何在Docker容器中使用Arthas相關(guān)知識感興趣的朋友一起看看吧
    2021-12-12
  • Docker 部署開源遠(yuǎn)程桌面工具RustDesk的使用

    Docker 部署開源遠(yuǎn)程桌面工具RustDesk的使用

    本文介紹了RustDesk開源遠(yuǎn)程桌面工具的Docker部署使用方法,支持自建服務(wù)器,可實(shí)現(xiàn)安全私密的遠(yuǎn)程控制電腦,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10

最新評論