share facebook facebook2 twitter menu hatena pocket slack

2014.06.17 TUE

Docker 1.0 を CoreOS で速攻試したのと Docker Hub を試してみる

川原 洋平

WRITTEN BY川原 洋平

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 を利用しました。

docker-coreos-docker-hub_01



インスタンス起動

docker-coreos-docker-hub_02

モザイクが多すぎて恐縮ですが…簡単に Core OS が起動してアクセス出来ました。



とりあえず


docker version

docker version

期待に胸を膨らませながら…

docker-coreos-docker-hub_03

おお、1.0.0 になってるで。


そして docker run

とりあえず docker run してみたいと思います。

docker run -t -i centos /bin/bash

run!

docker-coreos-docker-hub_04

素直ですね。



Docker Hub

次に Docker Hub を試してみたいと思います。


見た目とか

Docker Hub は従来の index.docker.io を GitHub ライクにしたイメージ。

docker-coreos-docker-hub_05

すでに index.docker.io 違うプロダクトだと思ってアカウントを作ろうとして怒られたので、すでに index.docker.io にアカウントがある方はお気をつけて。


Add Repository

docker-coreos-docker-hub_06

Add Repository をクリックすると…

docker-coreos-docker-hub_07

GitHub に似た感じでリポジトリの名前やパブリックかプライベート等を設定することが出来ます。尚、プライベートリポジトリは一つ以上作ろうとするとお支払いが必要になるので適宜お支払いするかパブリックリポジトリで我慢しましょう。

docker-coreos-docker-hub_08

Micro で 7 ドルなので安いものですが、自分はお小遣い制となっておりカードを持たされておりませんのでこの 7 ドルすら払えません。


Automated Build を試してみる


いったいなに?

Add Repository のプルダウンに踊る Automated Build はいったいなに?

docker-coreos-docker-hub_09

GitHub や Bitbucket にアップされている Dockerfile を以ってコンテナをビルドしてくれる機能のようです。しかも、連携したら GitHub 上の Dockerfile を修正して Commit → Push するだけでビルドが実行されるようです。おお。


ということで試す

Automated Build をクリックすると…以下のように GitHub または Bitbucket を選ぶページが表示されます。

docker-coreos-docker-hub_10

お好きなものを選びましょう。


Dockerfile を選ぶ

Dockerfile を選びましょう。今回は Dockerfile-mod-mruby を選びました。

docker-coreos-docker-hub_11


Docker Hub 上にリポジトリを作成

GitHub 上のリポジトリを選択すると以下のように Docker Hub 上にも同じ名前(または別名)でリポジトリを作ることになります。

docker-coreos-docker-hub_12


Create Repository をクリックすると…

GitHub から Dockerfile を clone してきてコンテナのビルドが開始します。

docker-coreos-docker-hub_13

早速エラーが…詳細を確認します。


ビルドの詳細を確認

以下のように Dockerfile とエラーになった原因等が表示されています。

docker-coreos-docker-hub_14

おお。


Dockerfile を直して GitHub に push すると…

エラーを元にして Dockerfile を修正し、改めて GitHub に push すると…

docker-coreos-docker-hub_15

ビルドが自動実行されます。こりゃ凄い。


Finish!!

docker-coreos-docker-hub_16

そして build id をクリックして詳細確認。

docker-coreos-docker-hub_17

おお、ジャスティス!、ファンタスティック!

尚、ログを見るとビルドした後に commit して push までしてくれていたりするのでまさにジャスティス。


早速出来たコンテナを docker run

もちろん CoreOS 上で動く Docker Engine 1.0 で…

docker run -t -i inokappa/dockerfile-mod-mruby /bin/bash

コンテナの pull が開始されます。

docker-coreos-docker-hub_18

もうここまでくればよしなに。



変更点を試す


docker build の COPY コマンド

  • 確認中


docker build の ADD コマンド

ADD コマンドで元ファイルの権限を維持するようになったようです。早速、試してみます。


Docker 1.0 前夜

試す環境は…以下のように 0.11 となります。もちろん、こちらも CoreOS 上です。

docker-coreos-docker-hub_19

以下のような簡単な Dockerfile をこさえます。

FROM centos
ADD test.txt /root/

ADD したいファイルを以下のように生成します。

touch test.txt
chmod 400 test.txt

docker build します。

docker build -t centos-test .

すぐに終了。

docker-coreos-docker-hub_20

確認します。

docker run -t -i centos-test /bin/bash

あら、権限変わってますな。

docker-coreos-docker-hub_21

この場合に権限が変わって欲しくない場合には、以下のように ADD した後に RUN chmod で権限を任意の権限に変更してあげる必要がありました。

FROM centos
ADD test.txt /root/
RUN chmod 400 /root/test.txt


Docker 1.0

上記と同じように Dockerfile を用意してビルドします。以下、一気に確認まで。

docker-coreos-docker-hub_22

おお。権限は変わっていない。

ということで、1.0 からは ADD した後で RUN chmod とかは不要なようです。



引き続き…

  • いろいろ試していきますよー

元記事は、こちら