第6章 アプリケーション例

6.1. Red Hat Enterprise Linux 7 ホストシステム上での Red Hat Enterprise Linux 6 プラットフォームイメージのインストール

6.1.1. 概要

このセクションでは、Red Hat Enterprise Linux 7 を Docker フォーマットのコンテナーのホストシステムとして使用する方法について説明します。サブスクリプションマネージャーツールを使用して Red Hat Enterprise Linux 7 サーバーをインストールし、システムを登録します。

このトピックでは、Red Hat Enterprise Linux 7 サーバーホストシステムのインストール後に Red Hat Enterprise Linux 6 プラットフォームイメージをインストールするステップについて説明します。Red Hat Enterprise Linux のインストール方法についての詳細は、『Red Hat Enterprise Linux 7 インストールガイド』を参照してください。

6.1.2. Docker サービスのインストールおよびプラットフォームイメージの取得

重要

以下の手順は、root ユーザーとして実行する必要があります。

  1. Red Hat Enterprise Linux 7 サーバーをインストールした後に、以下のコマンドを使用してシステムを登録します。

    # subscription-manager register --auto-attach
  2. Docker および docker-registry パッケージを含む RHEL Extras リポジトリーを有効にします。

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
    # subscription-manager repos --enable=rhel-7-server-optional-rpms

    または http://rhn.redhat.com に移動し、ここから RHEL Extras チャンネルをサブスクライブします。

  3. docker パッケージのインストール:

    # yum install docker
  4. docker サービスの有効化および起動:

    # systemctl enable docker
    # systemctl start docker

    以下のコマンドを実行してサービスが実行中であることを確認できます。

    # systemctl status docker
    docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
       Active: active (running) since Fri 2015-05-22 12:03:34 CEST; 3h 19min ago
         Docs: http://docs.docker.com
     Main PID: 843 (docker)
       CGroup: /system.slice/docker.service
               └─843 /usr/bin/docker -d --selinux-enabled
  5. 以下のコマンドを使用して、Red Hat Docker Registry から Red Hat Enterprise Linux 6 プラットフォームイメージをダウンロードします。

    # docker pull registry.access.redhat.com/rhel6

    以下のコマンドで、システムで利用可能なイメージを一覧表示します。

    # docker images
    REPOSITORY                        TAG      IMAGE ID      CREATED       VIRTUAL SIZE
    registry.access.redhat.com/rhel6  6.6      f5f0b338bbd6  9 weeks ago   155.6 MB
    registry.access.redhat.com/rhel6  latest   f5f0b338bbd6  9 weeks ago   155.6 MB
  6. /etc/redhat-release ファイルの内容を確認し、RHEL6 イメージが RHEL7 ホストシステムにあることを確認します。最初に、ホストシステムで以下を実行します。

     # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.1 (Maipo)

    次に、再びホストシステムからプラットフォームコンテナーイメージを確認します (コンテナーイメージにログインする必要はありません)。

    # docker run rhel6 cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 6.6 (Santiago)

上記は RHEL6 プラットフォームイメージが RHEL7 ホストシステムに正常にダウンロードされ、そのイメージを使用することができることを示しています。

6.1.3. 例: コンテナーに Apache Web Server を構築する

このセクションでは、RHEL6 プラットフォームイメージを使用して Apache Web Server をインストールする方法について説明します。

Dockerfile の確認: 以下のコンテンツを使用して Dockerfile を作成します。

+

# Using RHEL 6 platform image and Apache Web server
# Version 1

# Pull the rhel image from the local registry
FROM rhel6:latest
USER root

MAINTAINER Maintainer_Name

# Disable repos
RUN yum -y install deltarpm yum-utils --disablerepo=*-eus-* --disablerepo=*-htb-* \
        --disablerepo=*-ha-* --disablerepo=*-rt-* --disablerepo=*-lb-* --disablerepo=*-rs-* --disablerepo=*-sap-*

RUN yum-config-manager --disable *-eus-* *-htb-* *-ha-* *-rt-* *-lb-* *-rs-* *-sap-* > /dev/null


# Update image
RUN yum install httpd -y

# Create Apache content
RUN echo "Help! I am trapped inside a container!" > /var/www/html/index.html
EXPOSE 80

# Start the service
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]

+ MAINTAINER 行を変更してユーザーの名前を追加します。

  1. コンテナーの構築: Dockerfile を含むディレクトリーから、以下のコマンドを実行します。

    # docker build -t rhel6apache .
  2. コンテナーの起動: コンテナーイメージを起動するには、以下のコマンドを実行します。

    # docker run -d -p 80:80 --name=rhel6apache rhel6apache
  3. インストールのテスト: Web サーバーをテストします。

    # curl http://localhost/index.html
    Help! I am trapped inside a container!