FoundersJP

Dockerの「豆腐」文字化けを解消!NAS環境に日本語サポートを追加する最短ルート

· 3 分で読めます

デジタルライフ
Docker NAS

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を起動すれば、コンテナはホスト側の日本語フォントをあたかも自分自身の持ち物として認識します。あとはアプリの設定画面で日本語を選択すれば、動画の字幕もメニューも、美しい日本語で表示されるようになります。

関連記事

初心者でも安心。ソフトバンクがIPv6をブロックしても、LuckyとCloudflare Tunnelがあれば万全です

· 6 分で読めます

今日、突然自宅のNASに外部からアクセスできなくなり、そこに保存したメモも同期できなくなっていることに気づきました。原因を突き止めるのにかなり時間がかかりましたが、ソフトバンクルーターのアップデートにより、IPv6の着信接続がブロックされていたことが判明しました。以前、「443番ポート以外のポートの末尾を削除する」とい…

443ポートを失うと、アドレスに数字の末尾が付くのか?いいえ!Lucky+CloudFlareでスッキリ解決!

· 5 分で読めます

親しい友人たちは私がNASをいじるのが好きだと知っていて、自宅のNASでも多くのサービスを動かしています。オタクである私は、ほとんどの場合ルーター側の内部ネットワークアドレスを経由して利用しており、外部ネットワークからのアクセス状況には注意を払っていませんでした。ところが最近、ある日突然外出中に、NAS上のこれらのサー…

NASでDocker Composeを使った高度な遊び

· 11 分で読めます

私のことをよくご存知の方は、私がよくNASを弄っていること、そしてDockerが不可欠な多くのセルフホスト・サービスのNASデプロイメントにも参加していることをご存知でしょう。異なるNASシステムには異なるDockerソリューションがあり、Docker Composeは現在最も広く適用されているものです。 Docker…

NextCloud-AIOの活用と最適化、オンライン・コラボレーション・オフィスをワンクリックで実現

· 4 分で読めます

少し前にNextCloud AIOをインストールしたのですが、ネットワーク外で使うとOfficeがエラーになることがあるという声がありました。また、データの移行方法を聞いてくる友人もいる。ということで、いろいろな条件をまとめてみました。 https://www.foundersjp.com/zh/digital lif…

ハンズオンチュートリアル、ワンクリックでオンライン共同オフィス、UnRiad+NextCloud-AIO

· 4 分で読めます

最近、友人とプロジェクトに取り組んでいるので、強力なセルフホストコラボレーションプラットフォームを構築しようと計画しています。NextCloudを選んだ理由は2つあります。1つ目は、タスクボード、Officeスイート、ToDoList管理などを網羅した豊富な機能、2つ目は、各機能に対応するモバイルアプリが搭載されており…

AIに脳外科手術を施す:Ollama Modelfileを使ってローカルの大規模モデルを微調整し、影分身の術を習得させる?

· 10 分で読めます

エージェントのプライベート化が進む時代において、OllamaはAIモデルを実行するための基盤として非常に適しています。ニーズに応じて異なるモデルを組み合わせて読み込むことで、エージェントの行動目的を実現できます。ただし、Ollamaの公式ライブラリに含まれるモデルは一般的に容量が大きく、カスタマイズもできません。それに…

コメント