管理コマンド

運用ガイドの説明において管理コマンド manage.py を実行する場面がたびたび登場します。 KE2.0 では基本的に manage.py は kompira コンテナ内部で実行する必要があるため、動作中の kompira コンテナのコンテナ ID を知る必要があります。

なお、docker コマンドはコンテナ ID でなくコンテナ名を指定して実行することもできますが、構成によってコンテナ名が変わるため本マニュアルではコンテナ ID を指定して実行する手順で説明を共通化しています。

コンテナID とコンテナ名

コンテナ ID とコンテナ名は例えば以下のように docker ps コマンドで確認できます。

$ docker ps --format "{{.ID}} {{.Names}}"
aa5314b683e1 ke2-nginx-1
38dac7c77f60 ke2-kompira-1
a5caf7bd1ab6 ke2-kengine-1
dcadb5893a30 ke2-jobmngrd-1
bbdf0ed2bf9f ke2-postgres-1
2825a9737c12 ke2-rabbitmq-1
865c495d50b6 ke2-redis-1

上の結果では ke2-kompira-1 が該当して、コンテナ ID が 38dac7c77f60 であることが分かります。

kompira コンテナの実際のコンテナ名はシステム構成や構築した手順によって変わりますが、以下のように docker ps コマンドを使って名前に "kompira" という文字列を含むコンテナのコンテナIDを知ることができます。

$ docker ps -q -f name=kompira
38dac7c77f60

この手法を用いて、kompira コンテナ内部で manage.py コマンドを実行したい場合は以下のように行ないます。

$ docker exec $(docker ps -q -f name=kompira) manage.py <subcommand> ...

クラスタ構成での管理コマンドの実行

【要確認】 クラスタ構成の場合は、どのノード上で管理コマンドを実行するべきかという疑問が生じますが、対象とするコンテナが正常に動作しているノードであればどこで実行しても問題ありません。