2014/06/17
cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平(@inokara)です。
日本全国の Docker ファンの皆さんおはようございます。
待望の Docker 1.0 がリリースされたようなので待望の 1.0 を試してみたいと思います。尚、確認しながら記事を書いておりますので書きかけとかあったりするのでご注意くださいませ。
1.0 リリースで何が変わったかをブログ等から拾い読み。
当初は Amazon Linux にバイナリを落として試そうとしましたが速攻という名のもと CoreOS の AMI を利用しました。
モザイクが多すぎて恐縮ですが…簡単に Core OS が起動してアクセス出来ました。
docker version
期待に胸を膨らませながら…
おお、1.0.0 になってるで。
とりあえず docker run してみたいと思います。
docker run -t -i centos /bin/bash
run!
素直ですね。
次に Docker Hub を試してみたいと思います。
Docker Hub は従来の index.docker.io を GitHub ライクにしたイメージ。
すでに index.docker.io 違うプロダクトだと思ってアカウントを作ろうとして怒られたので、すでに index.docker.io にアカウントがある方はお気をつけて。
Add Repository をクリックすると…
GitHub に似た感じでリポジトリの名前やパブリックかプライベート等を設定することが出来ます。尚、プライベートリポジトリは一つ以上作ろうとするとお支払いが必要になるので適宜お支払いするかパブリックリポジトリで我慢しましょう。
Micro で 7 ドルなので安いものですが、自分はお小遣い制となっておりカードを持たされておりませんのでこの 7 ドルすら払えません。
Add Repository のプルダウンに踊る Automated Build はいったいなに?
GitHub や Bitbucket にアップされている Dockerfile を以ってコンテナをビルドしてくれる機能のようです。しかも、連携したら GitHub 上の Dockerfile を修正して Commit → Push するだけでビルドが実行されるようです。おお。
Automated Build をクリックすると…以下のように GitHub または Bitbucket を選ぶページが表示されます。
お好きなものを選びましょう。
Dockerfile を選びましょう。今回は Dockerfile-mod-mruby を選びました。
GitHub 上のリポジトリを選択すると以下のように Docker Hub 上にも同じ名前(または別名)でリポジトリを作ることになります。
GitHub から Dockerfile を clone してきてコンテナのビルドが開始します。
早速エラーが…詳細を確認します。
以下のように Dockerfile とエラーになった原因等が表示されています。
おお。
エラーを元にして Dockerfile を修正し、改めて GitHub に push すると…
ビルドが自動実行されます。こりゃ凄い。
そして build id をクリックして詳細確認。
おお、ジャスティス!、ファンタスティック!
尚、ログを見るとビルドした後に commit して push までしてくれていたりするのでまさにジャスティス。
もちろん CoreOS 上で動く Docker Engine 1.0 で…
docker run -t -i inokappa/dockerfile-mod-mruby /bin/bash
コンテナの pull が開始されます。
もうここまでくればよしなに。
ADD コマンドで元ファイルの権限を維持するようになったようです。早速、試してみます。
試す環境は…以下のように 0.11 となります。もちろん、こちらも CoreOS 上です。
以下のような簡単な Dockerfile をこさえます。
FROM centos
ADD test.txt /root/
ADD したいファイルを以下のように生成します。
touch test.txt
chmod 400 test.txt
docker build します。
docker build -t centos-test .
すぐに終了。
確認します。
docker run -t -i centos-test /bin/bash
あら、権限変わってますな。
この場合に権限が変わって欲しくない場合には、以下のように ADD した後に RUN chmod で権限を任意の権限に変更してあげる必要がありました。
FROM centos
ADD test.txt /root/
RUN chmod 400 /root/test.txt
上記と同じように Dockerfile を用意してビルドします。以下、一気に確認まで。
おお。権限は変わっていない。
ということで、1.0 からは ADD した後で RUN chmod とかは不要なようです。
元記事は、こちら