Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第4章 コンテナー化されたサービスの操作

本章では、コンテナーを管理するコマンドの例および OpenStack Platform コンテナーに関するトラブルシューティング方法について説明します。

4.1. コンテナー化されたサービスの管理

オーバークラウドでは、OpenStack Platform サービスの大半をコンテナー内で実行します。特定の状況では、1 つのホスト上で個別のサービスを制御する必要がある場合があります。本項には、オーバークラウドノード上で、コンテナー化されたサービスを管理するために実行することのできる一般的な docker コマンドについて記載します。docker を使用したコンテナー管理に関する包括的な情報は、Getting Started with ContainersWorking with Docker formatted containers を参照してください。

注記

これらのコマンドを実行する前には、オーバークラウドノードにログイン済みであることを確認し、これらのコマンドをアンダークラウドで実行しないようにしてください。

コンテナーとイメージの一覧表示

実行中のコンテナーを一覧表示するには、以下のコマンドを実行します。

$ sudo docker ps

停止中またはエラーの発生したコンテナーも一覧表示するには、コマンドに --all オプションを追加します。

$ sudo docker ps --all

コンテナーイメージを一覧表示するには、以下のコマンドを実行します。

$ sudo docker images

コンテナーの属性の確認

コンテナーまたはコンテナーイメージのプロパティーを確認するには、docker inspect コマンドを使用します。たとえば、keystone コンテナーを確認するには、以下のコマンドを実行します。

$ sudo docker inspect keystone

基本的なコンテナー操作の管理

コンテナー化されたサービスを再起動するには、docker restart コマンドを使用します。たとえば、keystone コンテナーを再起動するには、以下のコマンドを実行します。

$ sudo docker restart keystone

コンテナー化されたサービスを停止するには、docker stop コマンドを使用します。たとえば、keystone のコンテナーを停止するには、以下のコマンドを実行します。

$ sudo docker stop keystone

停止されているコンテナー化されたサービスを起動するには、docker start コマンドを使用します。たとえば、keystone のコンテナーを起動するには、以下のコマンドを実行します。

$ sudo docker start keystone
注記

コンテナー内のサービス設定ファイルに加えた変更は、コンテナーの再起動後には元に戻ります。これは、コンテナーがノードのローカルファイルシステム上の /var/lib/config-data/puppet-generated/ にあるファイルに基づいてサービス設定を再生成するためです。たとえば、keystone コンテナー内の /etc/keystone/keystone.conf を編集してコンテナーを再起動すると、そのコンテナーはノードのローカルシステム上にある /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf を使用して設定を再生成します。再起動前にコンテナー内で加えられた変更は、この設定によって上書きされます。

コンテナーのモニター

コンテナー化されたサービスのログを確認するには、docker logs コマンドを使用します。たとえば、keystone のログを確認するには、以下のコマンドを実行します。

$ sudo docker logs keystone

コンテナーへのアクセス

コンテナー化されたサービスのシェルに入るには、docker exec コマンドを使用して /bin/bash を起動します。たとえば、keystone コンテナーのシェルに入るには、以下のコマンドを実行します。

$ sudo docker exec -it keystone /bin/bash

keystone コンテナーのシェルに root ユーザーとして入るには、以下のコマンドを実行します。

$ sudo docker exec --user 0 -it <NAME OR ID> /bin/bash

コンテナーから出るには、以下のコマンドを実行します。

# exit