Dockerを使ってみる

明日、勉強会ということもあり、
仮想環境があれば遊べるかなと思ってDockerを入れてみました。

使ったのは、ConoHaのVPSでデフォルトのテンプレートで入る
CentOS6です。

ConoHaは、EPELリポジトリが最初から入っているので、
コマンド一発ですが、ほかだとEPELリポジトリを追加してください。

ざっくりとイメージとコンテナを作って削除してみたりして
遊んでみました。


さてインストールしてみましょう。

# yum install docker-io

Installed:
  docker-io.x86_64 0:1.4.1-3.el6

Dependency Installed:
  lua-alt-getopt.noarch 0:0.7.0-1.el6    lua-filesystem.x86_64 0:1.4.2-1.el6
  lua-lxc.x86_64 0:1.0.7-1.el6           lxc.x86_64 0:1.0.7-1.el6
  lxc-libs.x86_64 0:1.0.7-1.el6

Complete!

yumで入るのは有難いですw

サービスとして起動しましょう

# service docker start
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                           [  OK  ]
# chkconfig |grep docker
docker          0:off   1:off   2:on    3:on    4:on    5:on    6:off

自動起動するようになってますね。
さていろいろと見てみましょう。

# docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
 Pool Name: docker-253:0-783837-pool
 Pool Blocksize: 65.54 kB
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 305.7 MB
 Data Space Total: 107.4 GB
 Metadata Space Used: 729.1 kB
 Metadata Space Total: 2.147 GB
 Library Version: 1.02.89-RHEL6 (2014-09-01)
Execution Driver: native-0.2
Kernel Version: 2.6.32-504.12.2.el6.x86_64
Operating System: <unknown>
CPUs: 2
Total Memory: 996.3 MiB
Name: HOGEHOGE
ID: HOGE:HOGE:HOEG:HOGE

こんな感じです。

さてcentosのイメージを持ってきましょう。
https://registry.hub.docker.com/
ここにいろんなイメージがあります。
今回はCentOSを使ってみます。
docker pull centos」とするとCentOS7が入るので、
明示的にタグ「6」を指定しました。

# docker pull centos:6
centos:6: The image you are pulling has been verified
511136ea3c5a: Pull complete
5b12ef8fd570: Pull complete
f6808a3e4d9e: Pull complete
Status: Downloaded newer image for centos:6
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              6                   f6808a3e4d9e        3 weeks ago         215.7 MB
# docker run -i -t centos:6 /bin/bash
[root@9e3776094f1b /]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@9e3776094f1b /]#

「Ctrl+p」「Ctrl+q」で一旦抜けることが出来ます。

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3bcb5bc60080        centos:6            "/bin/bash"         8 seconds ago       Up 7 seconds                            angry_poincare

動いています。
再度、アタッチしてあげる。

# docker attach 3bcb5bc60080(CONTAINER ID)

[root@3bcb5bc60080 /]# exit

今度は「exit」する。
プロセスを見ると

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

停止していると見えないので

# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
3bcb5bc60080        centos:6            "/bin/bash"         16 seconds ago      Exited (0) 5 seconds ago                       elated_davinci

-a」オプションをつけてやります。
そうすると、見えます。
これをコンテナを削除するには、

# docker rm 3bcb5bc60080(CONTAINER ID)
3bcb5bc60080
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

無くなりました。

さて、自分だけのイメージを作ってみよう。
ということで「openssh-server」を入れたイメージを作ってみる。

# docker run -i -t centos:6 /bin/bash
[root@1e1a190108e2 /]# yum update
[root@1e1a190108e2 /]# yum install openssh-server
[root@1e1a190108e2 /]# sshd -v
sshd: illegal option -- v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]

[root@1e1a190108e2 /]# exit

一旦コンテナから抜けます。
ホスト側で

# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
1e1a190108e2        centos:6            "/bin/bash"         4 minutes ago       Exited (130) 1 seconds ago                       furious_nobel
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              6                   f6808a3e4d9e        3 weeks ago         215.7 MB

イメージはまだ一つしかないです。

作るのは、
リポジトリ=centos/sshd
タグ=6

にしてみます。

# docker commit 1e1a190108e2(CONTAINER ID) centos/sshd:6

0fca379570728ab2ddfd19fbac754c6c06a4501c4633d88167535b5787c4226c
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos/sshd         6              	0fca37957072        32 seconds ago      271.8 MB
centos              6                   f6808a3e4d9e        3 weeks ago         215.7 MB

出来ました!!
作ったイメージからコンテナを作成

# docker run -i -t centos/sshd /bin/bash
[root@b83fde6ff96d /]# sshd -v
sshd: illegal option -- v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
[root@b83fde6ff96d /]# exit
# docker ps -a
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                       PORTS               NAMES
b83fde6ff96d        centos/sshd:6   "/bin/bash"         41 seconds ago      Exited (130) 4 seconds ago                       nostalgic_pike
1e1a190108e2        centos:6             "/bin/bash"         13 minutes ago      Exited (130) 8 minutes ago                       furious_nobel

出来てます!!

作ったイメージを削除してみる。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos/sshd         6	               0fca37957072        3 minutes ago       271.8 MB
centos              6                   f6808a3e4d9e        3 weeks ago         215.7 MB

さっき作ったイメージ「centos/sshd」を消してみる

# docker rmi centos/sshd
Error response from daemon: Conflict, cannot delete 0fca37957072 because the container b83fde6ff96d is using it, use -f to force
FATA[0000] Error: failed to remove one or more images

はい、怒られました。
コンテナは停止してますが、CONTAINER ID「b83fde6ff96d」が
centos/sshd」を使っているので、
まずは、コンテナID「b83fde6ff96d」を削除する必要があります。

# docker rm b83fde6ff96d(CONTAINER ID)
b83fde6ff96d
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
1e1a190108e2        centos:6            "/bin/bash"         27 minutes ago      Exited (130) 23 minutes ago                       furious_nobel
# docker rmi centos/sshd
Untagged: centos/sshd:latest
Deleted: 0fca379570728ab2ddfd19fbac754c6c06a4501c4633d88167535b5787c4226c
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              6                   f6808a3e4d9e        3 weeks ago         215.7 MB

先ほど作ったイメージが消えました。

ざっくりですが、こうやっていろいろと遊んでみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください