Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第2章 CLI コマンド

以下では、Atomic 関連コマンドの参照一覧およびそれらの使用方法について記載します。

2.1. atomic host

このサブコマンドは、アップグレード、ロールバック、およびシステム状態の検査などを実行する基礎的なツール rpm-ostree の高レベルのラッパーです。atomic host を使用するには、rpm-ostree パッケージをシステムにインストールしておく必要があります。以下は、利用可能な位置指定引数です。

-bash-4.2# atomic host status
  TIMESTAMP (UTC)         VERSION   ID             OSNAME               REFSPEC
  2015-10-30 18:07:50     7.1.6     23d96474f6     rhel-atomic-host     rhel-atomic-host-ostree:rhel-atomic-host/7/x86_64/standard
* 2015-10-26 20:01:25     7.2       8b036dc779     rhel-atomic-host     rhel-atomic-host-ostree:rhel-atomic-host/7/x86_64/standard

すべてのデプロイメントについての情報を一覧表示します。アスタリスク (*) は現在実行中のデプロイメントであることを示します。

# atomic host rollback

次回起動時にインストール済みの代替ツリーに切り替えます。ロールバックを実行できるようにするには 2 つ以上のツリーが必要です。このコマンドを使用して新規ツリーに切り替えることもできます。さらに -r オプションを使用して、ロールバックの準備後に再起動を開始することもできます。

-bash-4.2# atomic host rollback -r
-bash-4.2# atomic host upgrade

最新の OSTree にアップグレードします (ある場合)。これには数分の時間がかかる場合があります。アップグレードが実行されると、changed (変更済み)removed (削除済み) および added (追加済み) パッケージの詳細一覧が提供されます。新たにダウンロードされたツリーは、次回の起動時に自動的に起動します。

-bash-4.2# atomic host rebase

新規の origin refspec をダウンロードし、デプロイします。

注記

詳細については、rpm-ostree(1) man ページを確認することもできます。まずは RHEL Atomic Tools コンテナーを実行する必要があります。以下のコマンドを使用します。

....
-bash-4.2# atomic run rhel7/rhel-tools
[root@atomic /]# man rpm-ostree
....

2.2. atomic info

イメージについての LABEL 情報を読み込み、表示します。イメージ名を位置指定引数として取ります。

-bash-4.2# atomic info rhel7
Vendor: Red Hat, Inc.
Name: redhat/rhel7
Build_Host: rcm-img05.build.eng.bos.redhat.com
Version: 7.1
Architecture: x86_64
Release: 24
BZComponent: rhel-server-docker
Authoritative_Registry: registry.access.redhat.com

デフォルトでは、このコマンドは最初にローカルイメージ内で確認してから、システムに設定したレジストリーを試行します。--remote オプションを使用する場合は、設定されたレジストリー内のみを参照します。

-bash-4.2# atomic info --remote rhel7

2.3. atomic install

イメージのインストールメソッドを実行します。インストールメソッドはコンテナーイメージの INSTALL フィールドに記載されます。通常これは、イメージを実行できるようホストシステムを準備するために使用されます。多くの場合、インストールメソッドはイメージに必要な設定ファイルをホストに表示し、イメージが削除される場合にそれらの設定ファイルを編集し、保存できるようにします。たとえば、インストールメソッドは以下のようになります。

-bash-4.2# atomic info rhel7/rsyslog
[output truncated]
INSTALL: docker run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=IMAGE -e NAME=NAME IMAGE /bin/install.sh

つまり、以下のコマンドが実行されます。

-bash-4.2# atomic install rhel7/rsyslog
docker run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=rhel7/rsyslog -e NAME=rsyslog rhel7/rsyslog /bin/install.sh

この命令により、atomic install はホスト上の / から、コンテナー内の /host にファイルをマウントし、$HOST 変数をコンテナー内の /host として設定します。たとえば、/usr/bin はコンテナーの /host/usr/bin になります。$IMAGErhel7/rsyslog に、$NAMErsyslog になります。/bin/install.sh スクリプトは /etc/rsyslog.conf ファイルをホストシステムに表示し、これをコンテナー外から編集できるようにします。

ローカルにイメージを持たない場合、atomic install は設定されたレジストリーからイメージのプルも実行します。--display オプションを使用して、イメージのインストールメソッドを表示します。このインストールコマンドは、--display が指定されている場合は実行されません。

-n オプションを使用して、イメージの複数のコピーをインストールします。

-bash-4.2# atomic install -n name1 rhel7/rsyslog
-bash-4.2# atomic install -n name2 rhel7/rsyslog

2.4. atomic uninstall

atomic install と同様に、uninstall は、UNINSTALL 命令からイメージのアンインストールメソッドを読み込み、これを実行します。

2.5. atomic run

イメージの実行メソッドを実行します。この実行メソッドはコンテナーイメージの RUN フィールドに記載されます。これにより、開発者は特定のアプリケーションを実行する方法を定義できます。たとえば、ntpd の指定されたコンテナーには --cap_add SYS_TIME オプションが必要であり、ユーザーが以下を入力する代わりに開発者がこれを RUN ラベルに組み込むことができます。

-bash-4.2# docker run -d -n --cap_add SYS_TIME ntpd

RUN フィールドが存在しない場合、atomic は以下を実行するようにデフォルト設定されます。

-bash-4.2# docker create -ti -n image_name container_name

--spc オプションを使用して、スーパー特権コンテナーモードでコンテナーを実行します。

2.6. atomic stop

イメージの停止メソッドを実行します。このコマンドを使用して実行中のコンテナーを停止します。イメージ名またはコンテナー名を引数として取ることができます。たとえば、以下のようになります。

-bash-4.2# atomic stop cranky_wright

または、以下を実行することもできます。

-bash-4.2# atomic stop rhel7/rsyslog

2.7. atomic images

-bash-4.2# atomic images
 REPOSITORY                          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
 registry.access.redhat.com/rhel7/rsyslog latest              00b31ffda5e9        2015-10-30 10:37    202.89 MB
 docker.io/rhel7/rhel-tools          latest              578f02676897        2015-10-30 10:08    1.07 GB
 registry.access.redhat.com/rhel7    latest              c4f590bbcbe3        2015-10-30 07:40    158.23 MB

システム上のコンテナーイメージを一覧表示します。

--prune オプションを使用し、未使用の 付随的な イメージを削除してディスクスペースを解放します。付随的なイメージとは、名前またはタグが指定されていないものや、その他のイメージで使用されていないイメージです。それらの使用されていないイメージはシステムスペースを占有します。通常、付随的なイメージは docker build を使用して古いバージョンのイメージを削除せずにイメージを更新することによって生じます。最初の列の * は付随的なイメージを示します。

2.8. atomic mount

コンテナーまたはイメージの基礎となるファイルシステムをホストファイルシステムにマウントします。これにより、それらのコンテンツを検査できます。たとえば、これを使用して設定ファイルを確認することができます。イメージおよびマウントポイントを指定する必要があります。

イメージ UUID、コンテナー UUID、コンテナー NAME、またはイメージ REPO のいずれかを受け入れます (オプションでレジストリーおよびタグ情報を含む)。所定の UUID または NAME がコンテナーであり、--live オプションが設定されていない場合、atomic mount は、一時イメージにコミットし、そのイメージから一時コンテナーを生成することにより、コンテナーのスナップショットを作成します。UUID または REPO がイメージを参照する場合、atomic mount は指定されたイメージから一時コンテナーを単純に作成します。すべての一時成果物は atomic unmount の実行時に削除されます。atomic mount は devicemapper および Docker の overlayfs ストレージバックエンドでのみサポートされます。

-bash-4.2# mkdir /root/tmp
-bash-4.2# atomic mount rhel7/rsyslog /root/tmp
-bash-4.2# cd /root/tmp
-bash-4.2# ls

2.9. atomic unmount

atomic mount で以前にマウントされたコンテナーまたはイメージをアンマウントします。マウントポイントを引数として取ります。

-bash-4.2# atomic unmount /root/tmp

2.10. atomic push

イメージをリポジトリーにプッシュします。デフォルトの動作は docker リポジトリーにプッシュすることですが、これは --satellite または --pulp オプションで Satellite または Pulp リポジトリーにプッシュするように設定することもできます。

2.11. atomic scan

セキュリティー脆弱性対策としてイメージおよびコンテナーをスキャンします。このコマンドを使用するために、openscap-daemon イメージをインストールしておく必要があります。これらのコマンドを実行して openscap デーモンをインストールします。

-bash-4.2# atomic install openscap-daemon
-bash-4.2# atomic run openscap-daemon

イメージの実行後に scan コマンドを使用できます。組み合わせて使用できるいくつかのオプションがあり、特定のイメージおよびコンテナーをスキャンすることができます。--fetch_cves=True オプションは Red Hat Network から最新の CVE データを取り込み、--fetch_cves=False は openscap-daemon のファイルのみを使用します。以下は例になります。

-bash-4.2# atomic scan --fetch_cves=True rhel7/rsyslog

または、すべてのコンテナーおよびイメージをスキャンし、詳細レポートを生成するには、以下を実行します。

-bash-4.2# atomic scan --all --detail

openscap-daemon イメージをインストールする場合、/etc/oscapd.conf ファイルはホストシステム上に置かれます。これを使用してデーモンまたはスキャンプロセスの動作を設定することができます。[CVEScanner] セクションでは、どこかにある CVE データをプルするか、またはイメージからのデータのみを使用するかに関してデフォルト動作を指定できます。fetch-cve-url には、デーモンが CVE データをプルする場所から標準以外の URL を指定します。デフォルトは Red Hat Network です。

[CVEScanner]
fetch-cve=True
fetch-cve-url=

コマンドラインオプションは /etc/oscapd.conf の設定を上書きすることに注意してください。

2.12. atomic version

イメージの "Name Version Release" ラベルを表示します。

-bash-4.2# atomic version rhel7/rsyslog
00b31ffda5e92737fe07aecaa972d6fb4bda7cc8eca225f6a12e06db1ac5ba39 rhel7/rsyslog-7.1-29 registry.access.redhat.com/rhel7/rsyslog:latest

2.13. atomic verify

利用可能な新規イメージがあることを確認します。さらにすべてのレイヤーをスキャンしてサブレイヤーのいずれかに利用可能な新規バージョンがあるかどうかを確認します。

2.14. atomic update

設定されたレポジトリーからイメージの最新更新をプルします。このイメージに基づくコンテナーが存在する場合、コンテナーは継続して古いイメージを使用します。コンテナーを削除するには、--force オプションを使用します。出力のサンプルは以下のとおりです。

-bash-4.2# atomic update rhel7/rsyslog
Using default tag: latest
00b31ffda5e9: Download complete
c4f590bbcbe3: Download complete
Status: Image is up to date for registry.access.redhat.com/rhel7/rsyslog:latest

2.15. atomic --help

--help オプションは atomic およびすべての atomic サブコマンドで利用できます。--help を使用して利用可能な位置指定引数または使用方法についてのメッセージを出力します。