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