CLI リファレンス
第1章 概要
atomic コマンドラインツールは、Atomic Host システムおよびコンテナーを管理するための容易な方法を提供します。これは、システムへの高レベルで一貫したエントリーポイントを提供し、スーパー特権コンテナーや他のデバッグツールなどの、特殊なタイプのコンテナーと対話することを容易にします。
install、uninstall、mount、unmount、run、stop などのサブコマンドの一部は、コンテナーイメージに指定される特殊な LABEL 命令を使用します。この LABEL 命令は、該当コマンドの実行メソッドを提供します。たとえば、atomic run は LABEL RUN 命令を読み込み、そこに指定されるコマンドを実行します。これにより、提案される値を指定してそれぞれのイメージを送付するのが容易になり、また実行される複雑な Docker コマンドが単純化されます。このフィールドがイメージに存在しない場合、コマンドは所定のデフォルトオプションと共に実行されます。
RHEL Atomic Host は atomic がプリインストールされた状態で出荷されますが、これは Atomic 以外のシステムにもインストールできます。この場合、Yum を使って必要なパッケージをインストールします。
# yum install atomic rpm-ostree
atomic CLI の man ページは RHEL Atomic Tools コンテナーでは利用できません。参照資料として本書を使用するか、または atomic --help コマンドを使って組み込みヘルプを使用してください。
第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 になります。$IMAGE は rhel7/rsyslog に、$NAME は rsyslog になります。/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 を使用して利用可能な位置指定引数または使用方法についてのメッセージを出力します。