Dockerコンテナの使用法
Docker クライアント
docker クライアントは非常に簡単で、docker コマンドを直接入力して、Docker クライアントのすべてのコマンド オプションを表示できます。
php@php:~# docker
コマンド docker command --help を使用すると、指定した Docker コマンドの使用方法の詳細を確認できます。
たとえば、docker stats コマンドの具体的な使用法を確認したいとします。
php@php:~# docker stats --help
Web アプリケーションを実行します
前に実行したコンテナには特別な用途はありません。
次に、docker を使用して Web アプリケーションを構築してみましょう。
Web アプリケーションを実行するために、Docker コンテナーで Python Flask アプリケーションを実行します。
php@php:~# docker run -d -P training/webapp python app.py
パラメータの説明:
-d:コンテナをバックグラウンドで実行させます。
-P:コンテナ内で使用されるネットワークポートを、使用するホストにマッピングします。
WEBアプリケーションコンテナを表示します
docker psを使用して実行中のコンテナを表示します
php@php:~$ docker ps
ここにはさらにポート情報があります。
PORTS 0.0.0.0:32769->5000/tcp
Docker は、ホスト ポート 32769 にマッピングされたポート 5000 (デフォルトの Python Flask ポート) を開きます。
現時点では、ブラウザを通じて WEB アプリケーションにアクセスできます
-p フラグを指定して、指定したポートをバインドすることもできます。
php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker ps実行中のコンテナを表示
コンテナ内の 5000 ポートは、ローカル ホストの 5000 ポートにマッピングされています。
ネットワーク ポートへのショートカット
docker ps コマンドを使用してコンテナのポート マッピングを表示することもできます。docker port を使用して、指定された (ID または名前) コンテナの特定の決定を表示します。ポートはホストのポート番号にマッピングされます。
上記で作成した Web アプリケーション コンテナ ID は: 7a38a1ad55c6 で、名前は: completed_swanson です
docker ポート 7a38a1ad55c6 または docker ポート completed_swanson を使用して、コンテナ ポートのマッピングを表示できます
php@php:~$ docker port 7a38a1ad55c6 5000/tcp -> 0.0.0.0:5000
php@php:~$ docker port determined_swanson 5000/tcp -> 0.0.0.0:5000
WEB アプリケーション ログを表示します
docker logs [ ID または名前] はコンテナ内の標準出力を表示できます。
php@php:~$ docker logs -f 7a38a1ad55c6 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f:tail -fを使用するのと同じように、dokcer logsにコンテナ内の標準出力を出力させます。
上から、アプリケーションがポート 5000 を使用しており、アプリケーションのアクセス ログを表示できることがわかります。WEBアプリケーションコンテナのプロセスを表示しますdocker topを使用してコンテナ内で実行されているプロセスを表示することもできます
php@php:~$ docker top determined_swanson
WEBアプリケーションを確認しますdocker Inspectionを使用してDockerの基礎となる情報を表示します。 Docker コンテナの構成とステータス情報を記録した JSON ファイルを返します。
php@php:~$ docker inspect determined_swanson [ { "Id": "7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361", "Created": "2016-05-09T16:20:45.427996598Z", "Path": "python", "Args": [ "app.py" ], "State": { "Status": "running", ......
WEBアプリケーションコンテナを停止します
php@php:~$ docker stop determined_swanson
determined_swanson
WEBアプリケーションコンテナを再起動します コマンド docker start を使用して、停止したコンテナを起動できます。
php@php:~$ docker start determined_swanson determined_swansondocker ps -l 実行中のコンテナを表示します 実行中のコンテナ、docker restart コマンドを使用して再起動できます
WEB アプリケーション コンテナを削除します docker rm コマンドを使用して削除できます 必須コンテナ
php@php:~$ docker rm determined_swanson determined_swansonコンテナを削除するときは、コンテナが停止状態である必要があります。そうでない場合は、次のエラーが報告されます
php@php:~$ docker rm determined_swanson Error response from daemon: You cannot remove a running container 7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361. Stop the container before attempting removal or use -f