オープンソースのおと


概要

「Red Hat Container Catalog(以下、RHCC)」とは、Red Hat が提供するコンテナカタログのこと(そのまま)です。
Red Hat に関連したさまざまなソフトウェアや、認定ISVのコンテナイメージを入手して、すぐに稼働させることができます。

今回は、このRHCCから、実際にイメージをダウンロードして使ってみたいと思います。Docker が導入されている環境であれば追加の設定などは必要なく、すぐに利用可能ですので、ぜひ試してみてください。

 

RHCCは、以下からアクセスが可能です。
https://access.redhat.com/containers/

Red Hat Container Catalog

 

以下で、利用可能なイメージを検索することができます。

# docker search registry.access.redhat.com/rhel
NAME  	DESCRIPTION                                 	STARS 	OFFICIAL   AUTOMATED
rhel6.6	 This platform image provides a minimal run...   0
rhel	 This platform image provides a minimal run...   0
rhel6	 This platform image provides a minimal run...   0
rhel6.5	 This platform image provides a minimal run...   0
rhel7	 This platform image provides a minimal run...   0
rhel7.0	 This platform image provides a minimal run...   0
(省略)

 

RHCC のカタログURLである registry.access.redhat.com の後に、検索文字列を入れます。
ここでは、検索したRed Hat Enterprise Linux (RHEL) イメージをダウンロードして起動してみましょう。

# docker run -it --rm --name rhcc-rhel registry.access.redhat.com/rhel /bin/bash
[root@eba5b5195a73 /]# uname -a
Linux eba5b5195a73 4.9.27-moby #1 SMP Thu May 11 04:01:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@eba5b5195a73 /]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)

 

このように、Dockerhub を利用した場合と同じ流れでRHELコンテナを起動することができます。
必要に応じて、起動したコンテナ内で変更を施してから再イメージ化したり、ダウンロードしたイメージから Dockerfile を使って自分専用のイメージを作ることも可能です。

RHELイメージを利用する際のサブスクリプションですが、コンテナホストがRHELやAtomicの場合は、ホストのサブスクリプションを引き継いで動きます。
RHEL以外のコンテナホスト上で稼働させた場合は、起動した各コンテナ内でサブスクリプションの割り当てを行う必要があります。(ほとんどのイメージは特に資格情報なくアクセスが可能ですが、一部にホストシステムのRHNへの登録が必要になる場合があります)

いろいろなイメージ

上記で起動したRHEL以外にもさまざまなイメージが提供されています。
いくつか検索してみましょう。

Red Hat OpenStack Platform で利用されるコンテナイメージ

# docker search registry.access.redhat.com/openstack
NAME                                                   		DESCRIPTION                                 	STARS 	OFFICIAL   AUTOMATED
rhosp10_tech_preview/openstack-base				OpenStack base image                        	0
rhosp10_tech_preview/openstack-dependencies			OpenStack dependencies image                	0
rhosp10_tech_preview/openstack-neutron-openvswitch-agent   	OpenStack Neutron OpenVswtich agent container   0
rhosp10_tech_preview/openstack-nova-compute			Openstack Nova compute container            	0
rhosp10_tech_preview/openstack-neutron-base			OpenStack Neutron base image                	0
rhosp10_tech_preview/openstack-nova-base      			Openstack Nova base image                   	0
rhosp10_tech_preview/openstack-openvswitch-base			Open vSwitch base image                     	0
rhosp10_tech_preview/openstack-openvswitch-db-server		Open vSwitch DB server container            	0
rhosp10_tech_preview/openstack-nova-libvirt			Libvirt container                           	0
rhosp10_tech_preview/openstack-heat-docker-agents		Heat docker agents container                	0
rhosp10_tech_preview/openstack-openvswitch-vswitchd		Open vSwitch daemon container               	0

OpenShift に関連したイメージ

# docker search registry.access.redhat.com/openshift
NAME					DESCRIPTION                                 	STARS 	OFFICIAL   AUTOMATED
openshift3/jenkins-2-rhel7		This image provides a Jenkins server, prim...   0
openshift3/metrics-deployer		Handles configuration and deployment of th...   0
openshift3/ose-docker-registry		Supports the V2 Docker Registry API. Inclu...   0
openshift3/registry-console		Web console for the Atomic Registry, an op...   0
openshift3/logging-curator		Provides a way to trim indices from Elasti...   0
openshift3/ose-logging-curator		Provides a way to trim indices from Elasti...   0
openshift3/ose-egress-router		The OpenShift egress router runs a service...   0
redhat-sso-7/sso71-openshift		Red Hat SSO                                 	0

 

このようにさまざまなイメージがあり、これらはすべて Red Hat のセキュリティチームによって審査され、品質保証のプロセスを受けたものですRHCC FAQより)。

またこれらのイメージは、大きく以下に分類できます。

◯ ベースコンテナイメージ:
様々なアプリケーションコンテナを作成するための基本イメージになります。現在のところ、Red Hat Enterprise Linux Standard Image と Red Hat Enterprise Linux Atomic Image の2種類が存在しています。

◯ 中間コンテナイメージ:
ベースイメージに特定の言語と関連したライブラリを追加し、アプリケーションの実行環境が準備されたイメージです。node.js、perl、ruby、rails、python、php などが用意されています。

◯ スタンドアロンコンテナイメージ:
起動するだけでさまざまなアプリケーションが起動できるコンテナです。Apache や MariaDB などが含まれます。

スタンドアロンイメージはそのまま起動すれば即アプリが使えるので、使い勝手がとても良いです。
以下は、HTTPDを起動する例です。

# docker search registry.access.redhat.com/httpd
NAME               	DESCRIPTION          	STARS 	OFFICIAL   AUTOMATED
rhscl/httpd-24-rhel7   Apache HTTP 2.4 Server   0

# docker run -d -p 8080:8080 registry.access.redhat.com/rhscl/httpd-24-rhel7
889838db1b4688585ebdfd3793f66f79325d5dce9fec1254116f77ad35079c53

# curl localhost:8080/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
   	 <title>Test Page for the Apache HTTP Server on Red Hat Enterprise Linux</title>
   	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   	<style type="text/css">
(省略)

 

これらのRHCCから提供されるイメージは、Red Hat のセキュリティチームによって審査されたPRMパッケージを用いて構築され、品質保証のプロセスを経たうえで公開されます。もしイメージが既知のセキュリティ脆弱性の影響を受ける場合には、Red Hat はイメージを再ビルドします。そのため、ミッションクリティカルな用途でも安心して利用することが可能です。

イメージの情報

コンテナを利用する際は、そのイメージがどのように作られたのかは気になるところです。特にうまく動かないときには、必ず確認することになると思います。
そんな時は、RHCC から各イメージの「Tech Details」やpull したイメージを起動すると、 /root/buildinfo/ にイメージの詳細が格納されており、確認することが可能です。

Red Hat Enterprise Linux 7

httpd 2.4

Red Hat は、コンテナ標準化を行うOCI(Open Containers Initiative)のメンバーとして、長期的なコンテナの標準化にも取り組んでおり、RHCC から入手できるイメージはさまざまな環境で動作します。Docker 以外にも、 Ret Hat Atomic Host や OpenShift、Red Hat Satellite、Kubernetes 等でも利用可能で、利便性が大変高くなっています。

コンテナ活用を考えている方はぜひ一度RHCCへアクセスし、イメージを使ってみてください。