Dockerの「豆腐」文字化けを解消!NAS環境に日本語サポートを追加する最短ルート
· 3 分で読めます
デジタルライフNASを使いこなすなら、Docker(コンテナ)の活用は避けて通れません。Dockerは今や世界最大級のアプリプラットフォームであり、docker.comには最新のAIGC(生成AI)ツールから便利なプライベートクラウドまで、魅力的なツールが揃っています。
しかし、大きな壁となるのが「言語の問題」です。海外製イメージの多くは日本語を想定して設計されていないため、メニューが英語のままだったり、特に動画のトランスコード時には字幕が「□□(豆腐)」のように文字化けしたりすることがよくあります。
よくネットで紹介されている「タイムゾーンの変更」や「環境変数の固定」だけでは、根本的な解決にならないケースがほとんどです。そこで今回は、私が試行錯誤の末にたどり着いた、Dockerコンテナに確実に日本語フォントを認識させる方法を共有します。
Dockerの仕組み
解決策を知るために、まずはDockerの性質を理解しましょう。Dockerは「LXC(Linux Container)」という技術をベースにしたコンテナエンジンです。より詳しく知りたい方は、以下の記事をご覧ください。
https://www.foundersjp.com/ja/lifestyle-ja/digitallife-ja/%e6%97%a5%e6%96%87%e6%b5%8b%e8%af%95/
LXCの正式名称はLinux Containerであり、Containerは「コンテナ」と訳されることが多く、これがDockerのロゴの由来でもあります。
Dockerイメージの本質は、Linuxベースのシステムに必要な依存関係だけを詰め込み、不要なものを徹底的に削ぎ落とした**「軽量パッケージ」**です。これにより、システムを汚さず、どんなLinux配布版でも動く互換性が保たれています。
しかし、この「徹底的な軽量化」こそが文字化けの原因です。開発者は転送速度を上げるためにイメージを極限まで小さくしようとするため、デフォルトの英語以外の言語データやフォントをすべて排除してしまうのです。
日本語化案
プログラム自体は多言語対応していても、表示するための「フォント(字形)」がイメージ内にないから表示できない――。それなら、ホスト側(NAS側)にあるフォントをコンテナに見せてあげればいい、というのが今回の解決策です。
私は互換性を最大化するために、以下のフォントを1つのフォルダにまとめました:
- Windows 10 / macOSから抽出した日本語フォント
- Ubuntu標準のシステムフォント(Dockerがフォントをインデックスする際のベースとなるため)
このフォルダを「フォントパック」としてホストマシンに保存し、すべてのDockerコンテナで共有できるようにします。
デプロイと設定手順
Linuxにおけるフォントの標準ディレクトリは /usr/share/fonts です。 Dockerコンテナ内のこの場所を覗いてみると、通常は最小限の英語用ファイルしか入っていません。
設定のポイント: コンテナを構築(作成)する際、**ボリュームマウント(パスの紐付け)**の設定で、ホスト側に用意した「フォントパック」のディレクトリを、コンテナ内の /usr/share/fonts に強制的に割り当てます。
# 例:docker runコマンドの場合
-v /volume1/docker/my-fonts:/usr/share/fonts
この設定でDockerを起動すれば、コンテナはホスト側の日本語フォントをあたかも自分自身の持ち物として認識します。あとはアプリの設定画面で日本語を選択すれば、動画の字幕もメニューも、美しい日本語で表示されるようになります。