ページ

2014年10月12日日曜日

Dockerをさわってみる 2 - Docker1.0 -

2014.06.09にDocker1.0がリリースされて色々変わっている件

いままでDockerと読んでいた本体のソフトウェアは「Docker Engine」に名称が変更になったらしい。新しいサービスとしてDocker Hubを発表。Docker indexは「Docker Hub Registory」 へ。。。

↓イメージ














詳しくはWEB で・・・
http://www.atmarkit.co.jp/ait/articles/1406/10/news031.html

今回は、コンテナ作成し色々カスタマイズしてみる。

・コンテナ作成
[root@localhost ~]# docker run -it --name ubuntu02 ubuntu /bin/bash
root@a3cccf6e59be:/# apt-get install -y nginx
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package nginx
root@a3cccf6e59be:/# exit

コンテナ作成は上手くいったが、パッケージインストールができない!!
よく分からないのでとりあえずapt-get update !!
すると、、、上手く行きましたorz

control + d でコンテナ終了させる。
docker ps -a で実行させた全てのコンテナ一覧を表示。
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
367e49fa4dc0        ubuntu:14.04        /bin/bash           3 minutes ago       Exited (0) 13 seconds ago                        ubuntu03             
a3cccf6e59be        ubuntu:14.04        /bin/bash           8 minutes ago       Exited (100) 7 minutes ago                       ubuntu02             
2510a5487997        ubuntu:14.04        /bin/bash           14 minutes ago      Exited (0) 9 minutes ago                         ubuntu01             
879b7468bb85        ubuntu:14.04        echo Hello          28 hours ago        Exited (0) 28 hours ago                          condescending_pike   
[root@localhost ~]# 

nginxをインストールしたubuntu03を元に新規イメージを作成してみる。
[root@localhost ~]# docker commit ubuntu03 fuji/nginx
fd64b49b28caf96275bbaccbd6e9bed47d76331d7ab64a851474bf3f44e246e5
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
fuji/nginx          latest              fd64b49b28ca        8 seconds ago       231.2 MB
ubuntu              14.10               b8d67033ed07        32 hours ago        242.4 MB
ubuntu              utopic              b8d67033ed07        32 hours ago        242.4 MB
ubuntu              14.04.1             1357f421be38        32 hours ago        192.7 MB
ubuntu              latest              1357f421be38        32 hours ago        192.7 MB
ubuntu              trusty              1357f421be38        32 hours ago        192.7 MB
ubuntu              14.04               1357f421be38        32 hours ago        192.7 MB
ubuntu              12.04               2bed76595591        32 hours ago        114.6 MB
ubuntu              12.04.5             2bed76595591        32 hours ago        114.6 MB
ubuntu              precise             2bed76595591        32 hours ago        114.6 MB
[root@localhost ~]# 

ちゃんと「fuji/nginx」のイメージが作成されている^^

・バックグラウンドで実行
先ほどのfuji/nginxイメージを元にバックグラウンドで実行するコンテナを作成してみる。
[root@localhost ~]# docker run -d -p 80:80 --name nginx1 fuji/nginx /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf
d500411c0af2d2c6a07cc7882e043fb641a2035f24090033e588d9c17a09c24a
2014/10/12 00:11:36 Error response from daemon: Cannot start container d500411c0af2d2c6a07cc7882e043fb641a2035f24090033e588d9c17a09c24a: listen tcp 0.0.0.0:80: bind: address already in use

ん!?何かエラーが・・・
80ポートがかぶっているorzホストのCentOSで既に80ポートをapacheさんが使用しているからか・・・
とりあえずポート指定無しで実行!!
[root@localhost ~]# docker run -d --name nginx2 fuji/nginx /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf
960de36b0911a2ccad45773aae6938bf542a3aa657cd922177c783e217bb56c0
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
960de36b0911        fuji/nginx:latest   /usr/sbin/nginx -g '   4 seconds ago       Up 3 seconds                            nginx2              
[root@localhost ~]# 
起動はでけた^^;

こんどはホスト側のapacheを停止させて実行してみる。
[root@localhost ~]# service httpd stop
httpd を停止中:                                            [  OK  ]

バックグラウンドで実行中のコンテナを停止
[root@localhost ~]# docker stop nginx2
nginx2
[root@localhost ~]# 

ポートを指定して実行
[root@localhost ~]# docker run -d -p 80:80 --name nginx3 fuji/nginx /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf
8f6f070d392d53ca71b4ac0ba53d6032cd2dd96a685beb621231952bf257f553
[root@localhost ~]# curl localhost:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@localhost ~]# 

できてる^^
ブラウザでも確認














コンテナを停止させ、再度起動してみる。
バックグラウンドでのコンテナを停止。
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                NAMES
8f6f070d392d        fuji/nginx:latest   /usr/sbin/nginx -g '   2 minutes ago       Up 2 minutes        0.0.0.0:80->80/tcp   nginx3              
[root@localhost ~]# docker stop nginx3
nginx3
[root@localhost ~]# !curl
curl localhost:80
curl: (7) couldn't connect to host
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

再度実行
[root@localhost ~]# docker start nginx3
nginx3

確認
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                NAMES
8f6f070d392d        fuji/nginx:latest   /usr/sbin/nginx -g '   5 minutes ago       Up 19 seconds       0.0.0.0:80->80/tcp   nginx3              
[root@localhost ~]# 

ちゃんと実行されている^^
[root@localhost ~]# !curl
curl localhost:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

次回はDockerfileをお勉強^^

0 件のコメント:

コメントを投稿