2015年1月8日木曜日

Oracle Linux 6.6 の Docker で、Oracle Linux 7.0 の httpd を起動する。

ORACLE から Oracle Linux 7 の Docker イメージも提供されています。
http://public-yum.oracle.com/docker-images/OracleLinux/OL7/



今回は、Oracle Linux 6.6 の Docker で、
Oracle Linux 7.0 イメージを使用した httpd を起動してみます。

Docker の環境はこちら。
[root@docker01 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.6
[root@docker01 ~]# uname -r
3.8.13-44.1.1.el6uek.x86_64
[root@docker01 ~]# rpm -q docker
docker-1.3.2-1.0.1.el6.x86_64

Oracle Linux 7 のイメージを DL します。
[root@docker01 ~]# wget http://public-yum.oracle.com/docker-images/OracleLinux/OL7/oraclelinux-7.0.tar.xz

イメージを登録します。
[root@docker01 ~]# ls -lh oraclelinux-7.0.tar.xz
-rw-r--r-- 1 root root 54M 11月 11 05:35 2014 oraclelinux-7.0.tar.xz
[root@docker01 ~]# xz -d oraclelinux-7.0.tar.xz
[root@docker01 ~]# ls -lh oraclelinux-7.0.tar
-rw-r--r-- 1 root root 261M 11月 11 05:35 2014 oraclelinux-7.0.tar
[root@docker01 ~]# docker load -i oraclelinux-7.0.tar
[root@docker01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
oraclelinux         7.0                 5f1be1559ccf        7 weeks ago         265.2 MB
oraclelinux         6.6                 d56e767abb61        7 weeks ago         319.4 MB
oraclelinux         6.5                 9ac1b99eee65        7 weeks ago         176.5 MB

Oracle Linux 7 のコンテナを「cont70_1」という名前で起動します。
Docker 側と、同じカーネルが使用されています。
[root@docker01 ~]# docker run -i -t --name cont70_1 oraclelinux:7.0 /bin/bash
[root@efe64bc9f540 /]# ★ここからコンテナの中。
[root@efe64bc9f540 /]# cat /etc/oracle-release
Oracle Linux Server release 7.0
[root@efe64bc9f540 /]# uname -r
3.8.13-44.1.1.el6uek.x86_64
このコンテナに、httpd をインストールします。
Yum リポジトリへの参照設定は、デフォルトでイメージに設定されています。
[root@efe64bc9f540 /]# yum repolist
ol7_UEKR3                                                           | 1.2 kB  00:00:00
ol7_latest                                                          | 1.4 kB  00:00:00
(1/5): ol7_latest/x86_64/updateinfo                                 |  86 kB  00:00:00
(2/5): ol7_UEKR3/x86_64/updateinfo                                  |  22 kB  00:00:01
(3/5): ol7_latest/x86_64/group                                      | 652 kB  00:00:01
(4/5): ol7_UEKR3/x86_64/primary                                     | 5.0 MB  00:00:01
(5/5): ol7_latest/x86_64/primary                                    | 6.8 MB  00:00:01
ol7_UEKR3                                                                          122/122
ol7_latest                                                                       7380/7380
repo id           repo name                                                          status
ol7_UEKR3/x86_64  Latest Unbreakable Enterprise Kernel for Oracle Linux 7Server (x86  122
ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64)                               7380
repolist: 7502

[root@efe64bc9f540 /]# yum install httpd
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-18.0.1.el7_0 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-18.0.1.el7_0 for package: httpd-2.4.6-18.0.1.el7_0.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-18.0.1.el7_0.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-18.0.1.el7_0.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-18.0.1.el7_0.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.0.1.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-18.0.1.el7_0 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================
 Package             Arch           Version                       Repository          Size
===========================================================================================
Installing:
 httpd               x86_64         2.4.6-18.0.1.el7_0            ol7_latest         1.2 M
Installing for dependencies:
 apr                 x86_64         1.4.8-3.el7                   ol7_latest          99 k
 apr-util            x86_64         1.5.2-6.0.1.el7               ol7_latest          91 k
 httpd-tools         x86_64         2.4.6-18.0.1.el7_0            ol7_latest          77 k
 mailcap             noarch         2.1.41-2.el7                  ol7_latest          30 k

Transaction Summary
===========================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 1.4 M
Installed size: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-util-1.5.2-6.0.1.el7.x86_64.rpm                          |  91 kB  00:00:01
(2/5): apr-1.4.8-3.el7.x86_64.rpm                                   |  99 kB  00:00:01
(3/5): httpd-tools-2.4.6-18.0.1.el7_0.x86_64.rpm                    |  77 kB  00:00:00
(4/5): mailcap-2.1.41-2.el7.noarch.rpm                              |  30 kB  00:00:00
(5/5): httpd-2.4.6-18.0.1.el7_0.x86_64.rpm                          | 1.2 MB  00:00:01
-------------------------------------------------------------------------------------------
Total                                                      517 kB/s | 1.4 MB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-3.el7.x86_64                                                  1/5
  Installing : apr-util-1.5.2-6.0.1.el7.x86_64                                         2/5
  Installing : httpd-tools-2.4.6-18.0.1.el7_0.x86_64                                   3/5
  Installing : mailcap-2.1.41-2.el7.noarch                                             4/5
  Installing : httpd-2.4.6-18.0.1.el7_0.x86_64                                         5/5
  Verifying  : httpd-2.4.6-18.0.1.el7_0.x86_64                                         1/5
  Verifying  : apr-util-1.5.2-6.0.1.el7.x86_64                                         2/5
  Verifying  : mailcap-2.1.41-2.el7.noarch                                             3/5
  Verifying  : httpd-tools-2.4.6-18.0.1.el7_0.x86_64                                   4/5
  Verifying  : apr-1.4.8-3.el7.x86_64                                                  5/5

Installed:
  httpd.x86_64 0:2.4.6-18.0.1.el7_0

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7                        apr-util.x86_64 0:1.5.2-6.0.1.el7
  httpd-tools.x86_64 0:2.4.6-18.0.1.el7_0         mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@efe64bc9f540 /]#

このコンテナを終了します。
[root@efe64bc9f540 /]# exit
exit
[root@docker01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                           PORTS               NAMES
efe64bc9f540        oraclelinux:7.0     "/bin/bash"         2 days ago          Exited (127) 2 minutes ago                           cont70_1
6a30bc0a72bb        oraclelinux:6.6     "/bin/bash"         3 days ago          Exited (-1) About a minute ago                       cont66_1
0629917127d5        oraclelinux:6.5     "/bin/bash"         3 days ago          Exited (0) 29 minutes ago                            cont65_1

そして、httpd がインストールされた状態でイメージを「ol70/httpd:v01」
という名前でコミットします。
[root@docker01 ~]# docker commit cont70_1 ol70/httpd:v01
5254a14fa2cb674d97dd90fc28f4b90b11496e53adcd4fe6eff36f8455a212d5
[root@docker01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
ol70/httpd          v01                 5254a14fa2cb        About a minute ago   446.3 MB
oraclelinux         7.0                 5f1be1559ccf        8 weeks ago          265.2 MB
oraclelinux         6.6                 d56e767abb61        8 weeks ago          319.4 MB
oraclelinux         6.5                 9ac1b99eee65        8 weeks ago          176.5 MB

新しいイメージから、httpd プロセスのコンテナを起動してみます。
Docker の 8080 番ポートを、コンテナの 80 番ポートに対応させています。
bash で起動したコンテナとは異なり、今回は、ターミナルに接続しません。
[root@docker01 ~]# docker run -d --name cont_ol70_httpd -p 8080:80 ol70/httpd:v01 /usr/sbin/httpd -D FOREGROUND
48fb59855c4367572a2eee46262c9ebe744ea56ca325602d1b03c36f4f98a0fd
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
48fb59855c43        ol70/httpd:v01      "/usr/sbin/httpd -D    2 minutes ago       Up 2 seconds        0.0.0.0:8080->80/tcp   cont_ol70_httpd
Web ブラウザから Docker の起動している OS の 80番ポートにアクセスすると、
Apache httpd 2.4 が起動していることがわかります。



コンテナには、httpd 2.4 が導入されています。
[root@docker01 ~]# docker exec cont_ol70_httpd rpm -q httpd
httpd-2.4.6-18.0.1.el7_0.x86_64

一方、Docker の OS には、httpd がインストールされていません。
(また Oracle Linux バージョンも表示しておきます。)
[root@docker01 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.6
[root@docker01 ~]# rpm -q httpd
パッケージ httpd はインストールされていません。

以上、OL 6 で OL7 のイメージを起動してみる話でした。

0 件のコメント:

コメントを投稿