Dockerによる仮想コンテナを試してみる(2日目)~ Dockerfileを使ってみる編~
Dockerによる仮想コンテナを試してみる(1日目) - 黒縁眼鏡は海を飛ぶ
Dockerによる仮想コンテナを試してみる(1.5日目)~ dockerコンテナに入る編~ - 黒縁眼鏡は海を飛ぶ
上の記事の続き。
今回はDockerfileを使用して、イメージのビルドをやってみようという回です。
と、いったものの、私自身あんまりわかってない部分が多いので、匍匐前進で進んでいきます。
試行錯誤している私のDockfile
# vim Dockerfile FROM centos:centos6 MAINTAINER ryoana14 RUN yum -y update RUN yum -y install git RUN yum -y install wget RUN yum -y install vim RUN cd /root && git clone https://github.com/ryo14-anana/dotfiles.git RUN ln -s /root/dotfiles/.vimrc /root/.vimrc env LANG C
え?おまえ何がしたいの?というと、とりあえず自分のdotfileを標準で搭載したimageを作ろうとしています。
本当はplenv
も導入済みのものを作りたかったのですが、私の基礎力のなさのせいで絶望的です。
カレントディレクトリにDockerfile
という名前で上記のようなファイルを作成し、以下のコマンドでbuildします。
# docker build -t ryoana14/centos6:1.0 .
ryoana14/centos6
までがimage名で、1.0
はtagになります。
では、Dockerfileの中身を見ていきましょう。
- FROM
- 元となるimageを指定します。私の場合、centos6.5を使用したいため、
centos:centos6
としています。
- 元となるimageを指定します。私の場合、centos6.5を使用したいため、
- MAINTAINER
- Dockerfileの作成者というところでしょうか。自分の名前つけておきましょう。
- RUN
- image構成するために実行するコマンドを記述します。
RUN yum -y install git
ならgit
コマンドをyum
でインストールしています。
- image構成するために実行するコマンドを記述します。
- env
- imageに対して環境変数を指定しています。
env LANG C
であれば、LANG
変数にCを指定しています。
- imageに対して環境変数を指定しています。
その他、ファイルを追加するADD
などがありますが、今のところ使えていません。
今後調べないとどうしようもないなと感じていること
上記のimageを作成後、docker run -it ryoana14/centos6:1.0 /bin/bash
とかでコンテナを起動したのですが、vim
に.vimrc
が反映されていません。
よくよく調べてみると、起動したコンテナの$HOME
が/
になっていて、/root
直下に作成した.vimrc
が読み込めないと。
同じ理由だと思うのですが、.bash_profile
にplenv導入のためにeval "$(plenv init -)
を書いても、$PATH
に追加されるのは/root/.plenv~~
ではなく//.plenv~~
となってしまっています。
加えて、コンテナ起動時のプロンプトがbash-4.1#
であることから、/etc/bashrc
が読み込まれていないっていうところまできて、頭が爆発しました。
dockerコンテナの起動について調べないといけない以上に、そもそも$HOME
っていつ決まるんだ?とかそういうLinux自体の基礎知識が圧倒的に足りてなくて、非常に悔しい感じです。
調べて明日結果をかけたらいいな…