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 イメージを使ってみる話でした。

2014年12月30日火曜日

Oracle Linux 6.x への Docker RPM インストール。

以前、Oracle Linux 6.5 に Doker のサイトから
docker バイナリを DL して使用してみました。
今回は、ORACLE のパブリック YUM サイトにある RPM で
Docker をインストールしてみます。
http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/x86_64/

手順は、Oracle Linux のマニュアル、Docker の Web サイト
どちらにもあります。
Oracle Linux
Administrator's Solutions Guide for Release 6
https://docs.oracle.com/cd/E37670_01/E37355/html/index.html

Docker
Oracle Linux 6 and 7
https://docs.docker.com/installation/oracle/

今回の環境

今回は、Oracle Linux 6.6 にインストールします。
[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

Yum リポジトリの参照設定

Docker の RPM がある public_ol6_addons リポジトリを有効にします。
enabled=0 を enabled=1 に変更しておきます。
[root@docker01 ~]# vi /etc/yum.repos.d/public-yum-ol6.repo
[root@docker01 ~]# grep public_ol6_addons -A6 /etc/yum.repos.d/public-yum-ol6.repo
[public_ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

Docker の RPM

Docker パッケージが
public_ol6_addons リポジトリにあることがわかります。
[root@docker01 ~]# yum list docker
読み込んだプラグイン:security
利用可能なパッケージ
docker.x86_64                       1.3.2-1.0.1.el6                       public_ol6_addons

この RPM をインストールします。
[root@docker01 ~]# yum info docker
読み込んだプラグイン:security
利用可能なパッケージ
名前                : docker
アーキテクチャ      : x86_64
バージョン          : 1.3.2
リリース            : 1.0.1.el6
容量                : 4.3 M
リポジトリー        : public_ol6_addons
要約                : Automates deployment of containerized applications
URL                 : http://www.docker.com
ライセンス          : ASL 2.0
説明                : Docker is an open-source engine that automates the deployment of any
                    : application as a lightweight, portable, self-sufficient container
                    : that will run virtually anywhere.
                    :
                    : Docker containers can encapsulate any payload, and will run
                    : consistently on and between virtually any server. The same container
                    : that a developer builds and tests on a laptop will run at scale, in
                    : production*, on VMs, bare-metal servers, OpenStack clusters, public
                    : instances, or combinations of the above.

Docker のインストール

Docker の RPM を yum コマンドでインストールします。
[root@docker01 ~]# yum install docker
(省略)
インストール:
  docker.x86_64 0:1.3.2-1.0.1.el6

依存性関連をインストールしました:
  augeas-libs.x86_64 0:1.0.0-7.el6
  cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.1
  dnsmasq.x86_64 0:2.48-14.el6
  ebtables.x86_64 0:2.0.9-6.el6
  glusterfs.x86_64 0:3.6.0.28-2.el6
  glusterfs-api.x86_64 0:3.6.0.28-2.el6
  glusterfs-libs.x86_64 0:3.6.0.28-2.el6
  gnutls-utils.x86_64 0:2.8.5-14.el6_5
  iscsi-initiator-utils.x86_64 0:6.2.0.873-13.0.1.el6
  libvirt.x86_64 0:0.10.2-46.0.1.el6_6.2
  libvirt-client.x86_64 0:0.10.2-46.0.1.el6_6.2
  lxc.x86_64 0:1.0.6-2.0.1.el6
  lxc-libs.x86_64 0:1.0.6-2.0.1.el6
  lzop.x86_64 0:1.02-0.9.rc1.el6
  nc.x86_64 0:1.84-22.el6
  netcf-libs.x86_64 0:0.2.4-1.el6
  qemu-img.x86_64 2:0.12.1.2-2.448.el6_6
  radvd.x86_64 0:1.6-1.el6
  usbredir.x86_64 0:0.5.1-1.el6
  yajl.x86_64 0:1.0.7-3.el6

依存性を更新しました:
  cyrus-sasl.x86_64 0:2.1.23-15.el6_6.1      cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.1
  cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1  cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.1

完了しました!

Docker がインストールされました。
[root@docker01 ~]# which docker
/usr/bin/docker
[root@docker01 ~]# docker -v
Docker version 1.3.2, build c78088f/1.3.2

Docker の RPM に含まれるファイルです。
「/usr/bin/docker」も含まれています。
[root@docker01 ~]# rpm -ql docker
/etc/rc.d/init.d/docker
/etc/sysconfig/docker
/etc/sysconfig/docker-storage
/etc/udev/rules.d/80-docker.rules
/usr/bin/docker
/usr/libexec/docker
/usr/libexec/docker/dockerinit
/usr/share/bash-completion/completions/docker
/usr/share/doc/docker-1.3.2
/usr/share/doc/docker-1.3.2/AUTHORS
/usr/share/doc/docker-1.3.2/CHANGELOG.md
/usr/share/doc/docker-1.3.2/CONTRIBUTING.md
/usr/share/doc/docker-1.3.2/LICENSE
/usr/share/doc/docker-1.3.2/LICENSE-vim-syntax
/usr/share/doc/docker-1.3.2/MAINTAINERS
/usr/share/doc/docker-1.3.2/NOTICE
/usr/share/doc/docker-1.3.2/README-vim-syntax.md
/usr/share/doc/docker-1.3.2/README.md
/usr/share/man/man1/docker-attach.1.gz
/usr/share/man/man1/docker-build.1.gz
/usr/share/man/man1/docker-commit.1.gz
/usr/share/man/man1/docker-cp.1.gz
/usr/share/man/man1/docker-create.1.gz
/usr/share/man/man1/docker-diff.1.gz
/usr/share/man/man1/docker-events.1.gz
/usr/share/man/man1/docker-exec.1.gz
/usr/share/man/man1/docker-export.1.gz
/usr/share/man/man1/docker-history.1.gz
/usr/share/man/man1/docker-images.1.gz
/usr/share/man/man1/docker-import.1.gz
/usr/share/man/man1/docker-info.1.gz
/usr/share/man/man1/docker-inspect.1.gz
/usr/share/man/man1/docker-kill.1.gz
/usr/share/man/man1/docker-load.1.gz
/usr/share/man/man1/docker-login.1.gz
/usr/share/man/man1/docker-logout.1.gz
/usr/share/man/man1/docker-logs.1.gz
/usr/share/man/man1/docker-pause.1.gz
/usr/share/man/man1/docker-port.1.gz
/usr/share/man/man1/docker-ps.1.gz
/usr/share/man/man1/docker-pull.1.gz
/usr/share/man/man1/docker-push.1.gz
/usr/share/man/man1/docker-restart.1.gz
/usr/share/man/man1/docker-rm.1.gz
/usr/share/man/man1/docker-rmi.1.gz
/usr/share/man/man1/docker-run.1.gz
/usr/share/man/man1/docker-save.1.gz
/usr/share/man/man1/docker-search.1.gz
/usr/share/man/man1/docker-start.1.gz
/usr/share/man/man1/docker-stop.1.gz
/usr/share/man/man1/docker-tag.1.gz
/usr/share/man/man1/docker-top.1.gz
/usr/share/man/man1/docker-unpause.1.gz
/usr/share/man/man1/docker-version.1.gz
/usr/share/man/man1/docker-wait.1.gz
/usr/share/man/man1/docker.1.gz
/usr/share/man/man5/Dockerfile.5.gz
/usr/share/vim/vimfiles/doc/dockerfile.txt
/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
/usr/share/vim/vimfiles/syntax/dockerfile.vim
/usr/share/zsh/site-functions/_docker
/var/lib/docker

デフォルトで docker デーモンは自動起動するようになっていますが、
インストール直後は停止しているので起動します。
[root@docker01 ~]# chkconfig --list docker
docker          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@docker01 ~]# service docker status
docker は停止しています
[root@docker01 ~]# service docker start
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                           [  OK  ]

docker が起動されています。
[root@docker01 ~]# docker info
Containers: 1
Images: 1
Storage Driver: devicemapper
 Pool Name: docker-252:0-270430-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: 661 MB
 Data Space Total: 107.4 GB
 Metadata Space Used: 970.8 kB
 Metadata Space Total: 2.147 GB
 Library Version: 1.02.89-RHEL6 (2014-09-01)
Execution Driver: native-0.2
Kernel Version: 3.8.13-44.1.1.el6uek.x86_64
Operating System: <unknown>

以上、Oracle Linux への Docker RPM インストールでした。

2014年12月29日月曜日

最近の OTN 掲示板(日本語)について。

もともと私は、OTN の掲示板に積極的に参加してませんでしたが、
以前はこの掲示板が、大変、栄えていました。
Oracle Technology Network (OTN) Japan - 掲示板
こちらは旧OTN掲示板です。

http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
懐かしい OTN 掲示板。



2014年12月21日日曜日

Oracle VM Server と Docker。


JPOUG Advent Calendar 2014 の16日目のエントリです。2回目でちゃいました。
前日は 佐々木潤 さんの 泥箱的なメモ - モデルをスケッチする でした。

今回は、Docker の話です。
最近流行の Docker ですが、当然ながら Oracle Linux でも使用できます。



そして、Oracle VM Server 上の Linux でも使用できます。
Oracle VM Server の Dom-0 でコンテナを起動したりするわけではなく、
Dom-U の Linux でコンテナを起動します。



2014年12月7日日曜日

Oracle VM Server と OpenStack。

今日は、JPOUG Advent Calendar 2014 の7日目のエントリです。
昨日は kouta shiobara さんの Trying Database: optimizer_dynamic_sampling=11 でした。

今回は、最近提供開始された、
ORACLE の OpenStack ディストリビューションの話です。
Oracle VM Server for x86 も、OpenStack で管理できるようになります。

Oracle OpenStack for Oracle Linux
http://www.oracle.com/us/technologies/linux/openstack/overview/index.html