LoginSignup
19
17

More than 5 years have passed since last update.

Window10に日本語対応CentOS7のdockerコンテナを作ってみた

Last updated at Posted at 2018-02-03

環境(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回避)

1.タスクバー上のDocker アイコンを右クリック
DockerMenu.png

2.「Settings...」メニューを選択
3.「Settings」画面で「Network」メニューを選択
4.「DNS Server」Fixed:8.8.8.8を選択し、Applyボタンクリック
setting.png

2.「CentOS7」の「Dockerイメージ」をダウンロード

ダウンロード手順

「PowerShell」を開く

docker pullでcentosのイメージをダウンロード

PS C:\Users\UserName> docker pull centos

※centosのminimalインストールのイメージがダウンロードできる

3.日本語環境をインストールした「Dockerイメージ」の作成

イメージ作成手順

「Dockerfile」を作成

Dockerfile
FROM centos
LABEL maintainer "michiru <0ashina0@gmail.com>"

# 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

man.png

メモ

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公開鍵をインストールする手順を追加した。

発生したNOKEYワーニング
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
dockerfileに追加したGPG公開鍵をインストールする手順
# CentOS ProjectのGPG公開鍵をインストールする
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
19
17
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17