MAGAZINE
ルーターマガジン
インフラ/運用
Docker Hubの公式Ubuntuイメージを日本語環境化する
2020.08.19
こんにちは、学生アルバイトのkoyamaです。今回は最近巷で何かと耳にするDockerを触っていこうと思います。
DockerでUbuntu日本語環境を作成する
まずはまっさらなUbuntuのイメージを引っ張ってきます。今回はUbuntuのバージョンは18.04とします。$ docker pull ubuntu:18.04これでubuntuのイメージを引っ張ってこれました。次にイメージがあるかを確認しましょう。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 2eb2d388e1a2 5 days ago 64.2MB引っ張ってきたubuntuのイメージを元にコンテナを稼働します。
$ docker run -it -d ubuntu:18.04 bash-dオプションをつけることでコンテナをバックグランドで実行させることができます。 実際に稼働しているか確認するために
docker ps
で稼働できているかを確認します。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0cf6efb116e ubuntu:18.04 "bash" 2 seconds ago Up 2 seconds beautiful_ramanujanでは稼働しているコンテナのターミナルに入ってみましょう!
$ docker exec -it beautiful_ramanujan bashとりあえず言語設定を確認してみます
$ locale LANG= LANGUAGE= 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=今は完全にまっさらな状態なので、ここから日本語環境を整えて行こうと思います。日本語化するために、パッケージのアップデート、日本語パッケージのインストール、言語設定の更新、環境変数の設定を行います。
$ apt-get update $ apt-get install -y language-pack-ja-base language-pack-ja locales $ locale-gen ja_JP.UTF-8 $ echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc $ source ~/.bashrcここで言語設定を再度確認してみましょう!
$ locale LANG=ja_JP.UTF-8 LANGUAGE= 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=確かに日本語環境が出来上がっているのが確認できました!コンテナを離れるときは
exit
を打てば離れられます。
次に先ほど作った日本語環境のコンテナをイメージとして保存してみましょう。
イメージとして保存する際にはdocker commit ${コンテナ名} ${任意のイメージ名・タグ名}
とします。
$ docker commit beautiful_ramanujan test:jp_env $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE test jp_env 8e6de6ffef67 11 seconds ago 118MB ubuntu 18.04 2eb2d388e1a2 5 days ago 64.2MB今回作ったコンテナがイメージとして保存されているのが確認できました。 ついでにDockerでよく使うコマンドを↓の表にまとめてみました。
イメージを確認するとき |
$ docker images
|
---|---|
イメージを稼働させるとき |
$ docker run ${イメージID} ${起動する時のシェルを指定}
|
稼働しているコンテナを確認する時 |
$ docker ps
|
稼働しているコンテナのターミナルに入る時 |
$ docker exec -it ${コンテナIDorコンテナ名}
|
稼働しているコンテナのターミナルに入る時 |
$ docker exec -it ${コンテナIDorコンテナ名}
|
稼働しているコンテナを停止する |
$ docker stop ${コンテナIDorコンテナ名}
|
再稼働したい場合 |
$ docker start ${コンテナIDorコンテナ名}
|
コンテナを消去するとき |
$ docker rm ${コンテナIDorコンテナ名}
|
イメージを消去するとき |
$ docker rmi ${イメージID}
|
Dockerfileで高速環境構築
最後にDockerfileを使って効率的に環境構築を行う方法を紹介します。 Dockerfileはイメージの環境を構築するためのコマンドをこのファイルに書き込むことでイメージを作成するときにすでに必要な環境が出来上がるようになる優れものです。
今回行った日本語化の内容をDockerfileに書き込んで日本語化されたイメージを作成してみましょう。$ vim Dockerfile #ubuntuの18.04の最小イメージから構築 #まっさらな状態からの場合はscratchとする FROM ubuntu:18.04 #イメージ作成時にRUNで事前にコマンドラインを実行できる #パッケージリストを更新 RUN apt-get update #日本語化パッケージリストをインストール RUN apt-get install -y language-pack-ja-base language-pack-ja locales #localeを日本語設定に変更 RUN locale-gen ja_JP.UTF-8 #言語を日本語に設定 ENV LANG ja_JP.UTF-8
作ったDockerfileを元にtest:dockerfileという名前・タグでイメージを作成します。$ docker build -t ${任意のイメージ名・タグ} ${Dockerfileがある場所}
というふうにしてイメージ名とDockerfileの場所を指定しておきます。buildコマンドは指定したディレクトリのDockerfileという名前のファイルを読み取るので、環境ごとにディレクトリを切り分ける必要があります。
$ docker build -t test:dockerfile ./ $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE test dockerfile 9469a78864d2 8 seconds ago 118MB作成されたイメージを稼働させてみればDockerfileの内容がイメージに反映されているのが確認できます。
$ docker run -it test:dockerfile bash $ locale LANG=ja_JP.UTF-8 LANGUAGE= 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=Dockerは開発の時に環境を素早くリセットできたり、本番環境と開発環境の差異を小さくできたりと何かと便利なツールなので、積極的に活用して身に付けたい技術ですね。
CONTACT
お問い合わせ・ご依頼はこちらから