2014年12月31日水曜日

ORACLE 公開の Oracle Linux 6.x Docker イメージを使う。

ORACLE から Docker イメージが公開されています。
Oracle Linux 6.x / 7.x があります。
http://public-yum.oracle.com/docker-images/OracleLinux/

前回は、ORACLE の Docker RPM をインストールしてみました。
今回は、引き続き、
Oracle Linux 6.6 にインストールした Docker で
Oracle Linux 6.6 のイメージを起動してみます。

イメージのダウンロード

ホスト側の OS にて、wget コマンドでイメージをダウンロードします。
今回のイメージはこれです。
http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
[root@docker01 ~]# wget http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
--2014-12-29 05:19:01--  http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
public-yum.oracle.com をDNSに問いあわせています... 184.51.198.32, 184.51.198.8
public-yum.oracle.com|184.51.198.32|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 73544076 (70M) [application/x-tar]
`oraclelinux-6.6.tar.xz' に保存中

100%[=================================================>] 73,544,076   480K/s 時間 2m 30s

2014-12-29 05:21:32 (477 KB/s) - `oraclelinux-6.6.tar.xz' へ保存完了 [73544076/73544076]

Docker へのイメージの登録

イメージを解凍して、Docker に登録します。
[root@docker01 ~]# ls -lh oraclelinux-6.6.tar.xz
-rw-r--r--. 1 root root 71M 11月 11 05:34 2014 oraclelinux-6.6.tar.xz
[root@docker01 ~]# xz -d oraclelinux-6.6.tar.xz ★解凍
[root@docker01 ~]# ls -lh oraclelinux-6.6.tar
-rw-r--r-- 1 root root 312M 11月 11 05:34 2014 oraclelinux-6.6.tar
[root@docker01 ~]# docker load -i oraclelinux-6.6.tar ★登録

イメージが登録されました。
[root@docker01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
oraclelinux         6.6                 d56e767abb61        6 weeks ago         319.4 MB

コンテナの起動

登録したイメージから、コンテナを起動してみます。
「docker run」コマンド実行の直後から、起動されたコンテナに接続されています。
[root@docker01 ~]# docker run -i -t --name cont01 oraclelinux:6.6 /bin/bash
[root@4296678bec11 /]# uname -n ★ここからコンテナ
4296678bec11
[root@4296678bec11 /]# cat /etc/oracle-release
Oracle Linux Server release 6.6
[root@4296678bec11 /]# uname -r
3.8.13-44.1.1.el6uek.x86_64
サービスの自動起動設定は下記のような感じです。
[root@4296678bec11 /]# chkconfig --list
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rhnsd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

YUM リポジトリも参照するように設定されています。
[root@4296678bec11 /]# yum repolist
public_ol6_UEKR3_latest               | 1.2 kB     00:00
public_ol6_UEKR3_latest/primary       |  11 MB     00:17
public_ol6_UEKR3_latest                              288/288
public_ol6_latest                     | 1.4 kB     00:00
public_ol6_latest/primary             |  45 MB     01:14
public_ol6_latest                                29075/29075
repo id                 repo name                                                   status
public_ol6_UEKR3_latest Unbreakable Enterprise Kernel Release 3 for Oracle Linux 6Se   288
public_ol6_latest       Oracle Linux 6Server Latest (x86_64)                         29075
repolist: 29363

public-yum-ol6.repo ファイルには、
ひととおりの Yum リポジトリが記載されています。
※有効にされているのは、public_ol6_latest と public_ol6_UEKR3_latest だけです。
[root@4296678bec11 /]# cat /etc/yum.repos.d/public-yum-ol6.repo | grep -E "\[.*\]|name|baseurl|enable"
[public_ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
enabled=1
[public_ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
enabled=0
[public_ol6_ga_base]
name=Oracle Linux $releasever GA installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/
enabled=0
[public_ol6_u1_base]
name=Oracle Linux $releasever Update 1 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/
enabled=0
[public_ol6_u2_base]
name=Oracle Linux $releasever Update 2 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/2/base/$basearch/
enabled=0
[public_ol6_u3_base]
name=Oracle Linux $releasever Update 3 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/3/base/$basearch/
enabled=0
[public_ol6_u4_base]
name=Oracle Linux $releasever Update 4 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/$basearch/
enabled=0
[public_ol6_u5_base]
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/5/base/$basearch/
enabled=0
[public_ol6_u6_base]
name=Oracle Linux $releasever Update 6 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/6/base/$basearch/
enabled=0
[public_ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
enabled=$uek
[public_ol6_UEKR3_latest]
name=Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/
enabled=$uekr3
[public_ol6_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/base/$basearch/
enabled=0
[public_ol6_MySQL]
name=MySQL 5.5 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/$basearch/
enabled=0
[public_ol6_gdm_multiseat]
name=Oracle Linux 6 GDM Multiseat ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/gdm_multiseat/$basearch/
enabled=0
[public_ol6_MySQL56]
name=MySQL 5.6 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL56/$basearch/
enabled=0
[public_ol6_spacewalk20_server]
name=Spacewalk Server 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/server/$basearch/
enabled=0
[public_ol6_spacewalk20_client]
name=Spacewalk Client 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/client/$basearch/
enabled=0
[public_ol6_ofed_UEK]
name=OFED supporting tool packages for Unbreakable Enterprise Kernel on Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/ofed_UEK/$basearch/
enabled=0
[public_ol6_playground_latest]
name=Latest mainline stable kernel for Oracle Linux 6 ($basearch) - Unsupported
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/playground/latest/$basearch/
enabled=0

コンテナからデタッチ

「Ctrl + p + q」キーで、コンテナから抜けます。
キーを押すと、すぐにホスト側の OS に戻ります。
「docker ps」コマンドで、コンテナが起動したままということがわかります。
[root@4296678bec11 /]# [root@docker01 ~]# ★キー入力で抜けた
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4296678bec11        oraclelinux:6.6     "/bin/bash"         17 minutes ago      Up 17 minutes                           cont01

コンテナの停止

コンテナを、「docker stop」コマンドで停止してみます。
停止中のコンテナは、「docker ps」だけだと表示されなくなりますが、
「-a」オプションで表示することができます。
[root@docker01 ~]# docker stop cont01
cont01
[root@docker01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
4296678bec11        oraclelinux:6.6     "/bin/bash"         19 minutes ago      Exited (-1) 7 seconds ago                       cont01

コンテナの起動

「docker start」コマンドで停止中のコンテナを起動してみます。
「docker run」とは違い、新規作成ではなく以前に作成したコンテナが起動されます。
コンテナ ID も、停止前のままです。
[root@docker01 ~]# docker start cont01
cont01
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4296678bec11
       oraclelinux:6.6     "/bin/bash"         19 minutes ago      Up 5 seconds                            cont01

コンテナに再接続

起動したコンテナに再接続してみます。
[root@docker01 ~]# docker attach cont01

[root@4296678bec11 /]# ★接続した

イメージ登録からコンテナ起動/停止まで、ひととおり試してみました。
Docker サイトからバイナリを DL~インストールする場合とは違い、
デフォルトでも、余分な標準出力がなくなります。

以上、ORACLE 製 Docker イメージを使ってみる話でした。

0 件のコメント:

コメントを投稿