黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

Dockerによる仮想コンテナを試してみる(1日目)

RHEL6.5から正式に対応が発表された仮想コンテナ「Docker」。
かなり前から熱い!というエントリを読んでいて、Docker対応のその他のツールもどんどんリリースされていく中、全く波に乗れていなかったので、土日を使用して使ってみようかなと思います。

環境とか諸々

Dockerインストール

# yum -y install docker-io
Loaded plugins: fastestmirror, security
Determining fastest mirrors
epel/metalink                                                                                                                                     | 4.6 kB     00:00     
 * epel: ftp.riken.jp
...........

Complete !

コマンドのPATH確認。

# which docker
/usr/bin/docker

version確認。

# docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
2014/08/16 12:25:17 Get http:///var/run/docker.sock/v1.12/version: dial unix /var/run/docker.sock: no such file or directory

む?なんかエラーっぽいものがでました。

サービス起動してないからでちゃうみたいです。

# service docker start
Starting cgconfig service:                 [  OK  ]
Starting docker:                [  OK  ]


# docker version
docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0

おっけー。

とりあえず使ってみましょう

使ってみたいということで、まずはインタラクティブ実行。

# docker run -i -t -h test centos /bin/bash
bash-4.2#

-iと-tフラグでインタラクティブ実行ができます。
-hはコンテナのホスト名を指定しています。

bash-4.2# hostname
bash: hostname: command not found
bash-4.2# uname -n
test

hostnameは入ってないですが、yumでインストールできます。
exitすれば母艦に帰れます。

docker psでは停止しているコンテナは確認できませんが、-aオプションをつけることで確認することができます。

# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
2ee36ad19c10        centos:latest       /bin/bash           33 seconds ago      Exited (0) 30 seconds ago                       elegant_morse       

停止したコンテナを再度起動させるためには、docker start <CONTAINER ID>を使用します。
バックグラウンドでの起動になりますので、再度コンテナ内に入りたい場合はattachコマンドを使用します。

# docker attach 2ee36ad19c10
bash-4.2#

コンテナの削除、及びイメージの削除にはrmrmiコマンドがあります。
それぞれCONTAINERI IDとIMAGE IDを指定してあげると削除することができます。

Dockerの基本的な操作をやってみました。
さくっと作れてさくっと潰せる点が非常にいいですね。
さらにDockerfileを用意すれば開発環境を迅速に複製できたり、便利なことだらけではないでしょうか。

次はDokerfileを使用した検証をしてみたいです。まる。

【参考にさせていただいたエントリ】 CentOS6.5でDockerを少しだけ使ってみた - okochangのインフラ日誌