Dockerはコンテナ型の仮想化ソフトウェアです。
従来のハイパーバイザによってハードウェアを仮想化する方法と違い、
コンテナ型はホストOS上でコンテナと呼ばれる隔離空間を作成して、OS実行環境を作ります。
システムの分離には Linux Containers (LXC) を、ファイルシステムまわりには Advanced multi layered unification filesystem (Aufs)が利用されています。
また、Docker 0.9からはカーネルのコンテナAPIを直接叩く事でLXC(Linux Containers)が無くても稼働するようになっています。
それでは実際に試してみます!
環境準備
1.環境準備
Dockerを稼働させるインスタンスを用意しておきます。
Amazon Linux は2014.03 ReleaseバージョンではリポジトリにDockerが存在します。
※今回は検証の為、AmazonLinuxのコンテナイメージは作成せずにBaseを利用します。
Dockerの利用
2.インストール
Dockerをインストールします。
1# yum install -y dockerバージョンを確認してみます。
1# docker -v2Docker version 0.9.0, build 2b3fdf2/0.9.0続いて、起動します。
1# service docker start3.試してみる
Dockerを実際に試してみます。
baseというコンテナイメージを利用して”Hello”と表示してみます。
1# docker run -i -t base /bin/echo "Hello"Dockerでは指定されたコマンドを完了するとコンテナを停止します。
1# docker ps23CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESbashを利用してコンテナにアクセスしてみます。
1# docker run -i -t base /bin/bash2root@ded6e479031a:/# ifconfig3eth0 Link encap:Ethernet HWaddr 92:99:1a:e8:90:004 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.05 inet6 addr: fe80::9099:1aff:fee8:9000/64 Scope:Link6 UP BROADCAST RUNNING MTU:1500 Metric:17 RX packets:3 errors:0 dropped:0 overruns:0 frame:08 TX packets:6 errors:0 dropped:0 overruns:0 carrier:09 collisions:0 txqueuelen:100010 RX bytes:258 (258.0 B) TX bytes:468 (468.0 B)1112lo Link encap:Local Loopback13 inet addr:127.0.0.1 Mask:255.0.0.014 inet6 addr: ::1/128 Scope:Host15 UP LOOPBACK RUNNING MTU:1500 Metric:116 RX packets:0 errors:0 dropped:0 overruns:0 frame:017 TX packets:0 errors:0 dropped:0 overruns:0 carrier:018 collisions:0 txqueuelen:019 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)「-d」オプションを利用してバックグラウンドで走らせてみます。
1# docker run -i -d -t base /bin/bash27f59895f13a111331a0944891f6a73ef3eb48fb175c8d04cc1712af189b8e9e5一覧で確認してみます。
1# docker ps23CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES47f59895f13a1 base:latest /bin/bash 6 seconds ago Up 5 seconds prickly_torvaldsprickly_torvalds
アクセスしてみます。
1# docker attach [CONTAINER ID]2root@7f59895f13a1:/#最後に停止中のコンテナ一覧を確認してみます。
1# docker ps -a23CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES47f59895f13a1 base:latest /bin/bash 15 minutes ago Exit 0 prickly_torvalds5ded6e479031a base:latest /bin/bash 29 minutes ago Exit 0 compassionate_poincare6be24cac91cb2 base:latest /bin/echo Hello 39 minutes ago Exit 0 distracted_bohrいかがでしたでしょうか?
次回は『 OSS編~Dockerを試してみる②~ 』と題して、DockerでApcheのイメージを作成してみたいと思います。
お楽しみに!!!