こんにちは! JQです。
前回は『VPC編~VPC Peeringを試してみる②~』と題して、VPC Peeringをawscliから試してみました。
今回は『OSS編~Dockerを試してみる①~』と題して、コンテナ型の仮想化ツールであるDockerを試してみたいと思います。
Dockerとは
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 2 |
# docker -v Docker version 0.9.0, build 2b3fdf2/0.9.0 |
続いて、起動します。
1 |
# service docker start |
3.試してみる
Dockerを実際に試してみます。
baseというコンテナイメージを利用して”Hello”と表示してみます。
1 |
# docker run -i -t base /bin/echo "Hello" |
Dockerでは指定されたコマンドを完了するとコンテナを停止します。
1 2 |
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
bashを利用してコンテナにアクセスしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# docker run -i -t base /bin/bash root@ded6e479031a:/# ifconfig eth0 Link encap:Ethernet HWaddr 92:99:1a:e8:90:00 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::9099:1aff:fee8:9000/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:258 (258.0 B) TX bytes:468 (468.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) |
「-d」オプションを利用してバックグラウンドで走らせてみます。
1 2 |
# docker run -i -d -t base /bin/bash 7f59895f13a111331a0944891f6a73ef3eb48fb175c8d04cc1712af189b8e9e5 |
一覧で確認してみます。
1 2 3 |
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7f59895f13a1 base:latest /bin/bash 6 seconds ago Up 5 seconds prickly_torvalds |
prickly_torvalds
アクセスしてみます。
1 2 |
# docker attach [CONTAINER ID] root@7f59895f13a1:/# |
最後に停止中のコンテナ一覧を確認してみます。
1 2 3 4 5 |
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7f59895f13a1 base:latest /bin/bash 15 minutes ago Exit 0 prickly_torvalds ded6e479031a base:latest /bin/bash 29 minutes ago Exit 0 compassionate_poincare be24cac91cb2 base:latest /bin/echo Hello 39 minutes ago Exit 0 distracted_bohr |
いかがでしたでしょうか?
次回は『OSS編~Dockerを試してみる②~』と題して、DockerでApcheのイメージを作成してみたいと思います。
お楽しみに!!!