読者です 読者をやめる 読者になる 読者になる

黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

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としています。
  • MAINTAINER
    • Dockerfileの作成者というところでしょうか。自分の名前つけておきましょう。
  • RUN
    • image構成するために実行するコマンドを記述します。RUN yum -y install gitならgitコマンドをyumでインストールしています。
  • env
    • imageに対して環境変数を指定しています。env LANG Cであれば、LANG変数にCを指定しています。

その他、ファイルを追加する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自体の基礎知識が圧倒的に足りてなくて、非常に悔しい感じです。

調べて明日結果をかけたらいいな…