Window10に日本語対応CentOS7のdockerコンテナを作ってみた
環境(2018/10/13 更新)
Windows 10 Pro 1709(16299.192)
Docker version 17.12.0-ce, build c97c6d6 ⇒ Version 18.06.1-ce-win73
CentOS Linux release 7.4.1708 (Core) ⇒ CentOS Linux release 7.5.1804 (Core)
1.「Docker for Windows」のインストール
ドキュメントURL
ダウンロードURL
インストール手順
-「Get Docker for Windows [Stable]」をクリック
-「Docker for Windows Installer.exe」を開く
追加の設定(yum installのTimeOut回避)
2.「Settings...」メニューを選択
3.「Settings」画面で「Network」メニューを選択
4.「DNS Server」Fixed:8.8.8.8を選択し、Applyボタンクリック
2.「CentOS7」の「Dockerイメージ」をダウンロード
ダウンロード手順
「PowerShell」を開く
docker pullでcentosのイメージをダウンロード
PS C:\Users\UserName> docker pull centos
PS C:\Users\UserName> docker pull centos
※centosのminimalインストールのイメージがダウンロードできる
3.日本語環境をインストールした「Dockerイメージ」の作成
イメージ作成手順
「Dockerfile」を作成
Dockerfile
FROM centos
LABEL maintainer "michiru <[email protected]>"
# CentOS ProjectのGPG公開鍵をインストールする
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# インストール済みのパッケージをアップデート&キャッシュのクリア
RUN yum -y update && yum clean all
# 言語を日本語に設定
RUN localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
RUN echo 'LANG="ja_JP.UTF-8"' > /etc/locale.conf
ENV LANG ja_JP.UTF-8
# 日付を日本語に設定
RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock
RUN rm -f /etc/localtime
RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# manをインストールする前に、manファイルをインストールするように設定変更
RUN sed -i -e"s/^tsflags=nodocs/\# tsflags=nodocs/" /etc/yum.conf
# manと、man-pagesをインストール
RUN yum -y install man
RUN yum -y install man-pages.noarch
RUN yum -y install man-pages-ja.noarch
4.イメージ作成
「Dockerイメージ」の作成
PS C:\Users\UserName> docker build ./ -t centosjp
5.確認
「Dockerコンテナ」の作成&起動
PS C:\Users\UserName> docker run -it centosjp
日本語化の確認
CentOSで実行
[root@bcffc13a8539 /]# date
2018年 2月 3日 土曜日 10:57:54 JST
[root@bcffc13a8539 /]#
日本語manの確認
CentOSで実行
[root@bcffc13a8539 /]# man ls
FROM centos
LABEL maintainer "michiru <[email protected]>"
# CentOS ProjectのGPG公開鍵をインストールする
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# インストール済みのパッケージをアップデート&キャッシュのクリア
RUN yum -y update && yum clean all
# 言語を日本語に設定
RUN localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
RUN echo 'LANG="ja_JP.UTF-8"' > /etc/locale.conf
ENV LANG ja_JP.UTF-8
# 日付を日本語に設定
RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock
RUN rm -f /etc/localtime
RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# manをインストールする前に、manファイルをインストールするように設定変更
RUN sed -i -e"s/^tsflags=nodocs/\# tsflags=nodocs/" /etc/yum.conf
# manと、man-pagesをインストール
RUN yum -y install man
RUN yum -y install man-pages.noarch
RUN yum -y install man-pages-ja.noarch
「Dockerイメージ」の作成
PS C:\Users\UserName> docker build ./ -t centosjp
5.確認
「Dockerコンテナ」の作成&起動
PS C:\Users\UserName> docker run -it centosjp
日本語化の確認
CentOSで実行
[root@bcffc13a8539 /]# date
2018年 2月 3日 土曜日 10:57:54 JST
[root@bcffc13a8539 /]#
日本語manの確認
CentOSで実行
[root@bcffc13a8539 /]# man ls
PS C:\Users\UserName> docker run -it centosjp
[root@bcffc13a8539 /]# date
2018年 2月 3日 土曜日 10:57:54 JST
[root@bcffc13a8539 /]#
[root@bcffc13a8539 /]# man ls
メモ
1) yum -y groupinstall "Japanese Support" で、日本語化するのは過去(CentOS6?)の話。yumグループに"Japanese Support"はありません。yum grouplistで確認できます。
Refer to CentOS7のyumグループを確認する
2) yum -y reinstall glibc-common等は、必要ありません。CentOSのminimalに日本語のファイルが入っています。
[root@7c49cec1ae6a locales]# ls -l /usr/share/i18n/locales/ja_JP
-rw-r--r-- 1 root root 222115 11月 30 18:23 /usr/share/i18n/locales/ja_JP
[root@7c49cec1ae6a locales]#
ただし、localedef コマンドで、日本語ロケールをコンパイルする必要があります。
localedef の引数がja_JP.UTF-8なのに、locale -aはja_JP.utf8となっているのは、locale-archive に書き込む際に,アルファベットは小文字に,アルファベットと数字以外は無視するようにしているから
[root@254298d02f70 /]# locale -a | grep ja_JP
[root@254298d02f70 /]# localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
[root@254298d02f70 /]# locale -a | grep ja_JP
ja_JP.utf8
[root@254298d02f70 /]#
export LANG="ja_JP.UTF-8"すると、日本語ロケールに変更できる。
[root@7ab3dc1e9b5a /]# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
[root@7ab3dc1e9b5a /]# export LANG="ja_JP.UTF-8"
[root@7ab3dc1e9b5a /]# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
[root@7ab3dc1e9b5a /]#
3) ワーニング回避のため、CentOS ProjectのGPG公開鍵をインストールする手順を追加した。
warning: /var/cache/yum/x86_64/7/base/packages/less-458-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
# CentOS ProjectのGPG公開鍵をインストールする
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Author And Source
この問題について(Window10に日本語対応CentOS7のdockerコンテナを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/0ashina0/items/f8b960e822a40a6a2eed著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .