0

简单易用!Docker添加中文支持,让你轻松打造母语环境!

Share
  • 4 6 月, 2025

玩NAS必然要折腾Docker,Docker可能是目前生态最广泛的应用平台了。除了大神们推荐的各种应用,在docker.com上也有很多好玩的东西,包括一些AIGC工具,一些私有云盘工具等。但是问题也来了,很多docker镜像应用不是面向中文用户开发的,所以也没有中文化。

前几天就有一位朋友跟我探讨Docker中的应用不支持中文怎么办?特别是视频转码字幕都变成了小方块。网上也有一些例如改时区,或者语言锁定Chianese的方案,但效果很局限。分享一下我摸索出来如何添加中文支持?

Docker的原理

想要弄懂docker,首先要理解它。Docker是基于LXC架构的容器引擎,在LXC基础上提供了更多优化管理的功能。更深度的了解可以看看下边的这篇文章。

LXC全称是Linux Container,Container可译为“容器”或“集装箱”,这也是docker logo图标的由来。

无论是Docker还是LXC 本质都是基于Linux的。网上提供的容器可以理解为基于Linux底层打包了需要的依赖,精简去除不需要的部分。这样的优势是减少文件体积,利于网络传输,同时不影响原生系统,还可以在各个Linux发行版本中达到兼容的效果。

中文化方案

了解了底层原因,也就有了解决方案。很多Docker容器包不支持中文字符,或者说不支持非英语语言的原因是因为很多开发者在打包镜像的过程中,为了精简镜像的体积便于网络传输,只会保留默认的英语支持,不封装其他语言环境进去。

很多程序本身在Linux GUI(图形化界面)下是支持多语言的,因为Docker镜像中缺失了英语外其他语言的支持,所以导致不能显示其他的语言。所以我们在使用中只要挂载对应的语言字库就可以了。

为了保证最广泛的兼容性,我分别从win10和MAC中提取了字库,和Ubuntu默认的系统字库一同导出为一个文件夹作为字库文件包。保留Ubuntu的完整字库是因为Docker默认会索引Linux下的英文字体。把这个字库文件包导入宿主机的默认字库,来为所有Docker镜像提供共用的语言支持。

部署

Linux的默认字库目录是在“/usr/share/fonts”。

我们可以在Docker的命令行模式ls一下这个目录,可以看到默认是语言文件的。

所以只要在构建容器配置时,把字库目录强制指向宿主机的字库目录,再执行Docker启动命令。之后在应用中选择中文,就可以慢慢享用了。