Dockerコンテナの使用法



Docker クライアント

docker クライアントは非常に簡単で、docker コマンドを直接入力して、Docker クライアントのすべてのコマンド オプションを表示できます。

php@php:~# docker

docker27.png

コマンド docker command --help を使用すると、指定した Docker コマンドの使用方法の詳細を確認できます。

たとえば、docker stats コマンドの具体的な使用法を確認したいとします。

php@php:~# docker stats --help

docker28.png


Web アプリケーションを実行します

前に実行したコンテナには特別な用途はありません。

次に、docker を使用して Web アプリケーションを構築してみましょう。

Web アプリケーションを実行するために、Docker コンテナーで Python Flask アプリケーションを実行します。

php@php:~# docker run -d -P training/webapp python app.py

docker29.png

パラメータの説明:

  • -d:コンテナをバックグラウンドで実行させます。

  • -P:コンテナ内で使用されるネットワークポートを、使用するホストにマッピングします。


WEBアプリケーションコンテナを表示します

docker psを使用して実行中のコンテナを表示します

php@php:~$ docker ps

docker30.png

ここにはさらにポート情報があります。

PORTS
0.0.0.0:32769->5000/tcp

Docker は、ホスト ポート 32769 にマッピングされたポート 5000 (デフォルトの Python Flask ポート) を開きます。

現時点では、ブラウザを通じて WEB アプリケーションにアクセスできます

docker31.png

-p フラグを指定して、指定したポートをバインドすることもできます。

php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py

docker ps実行中のコンテナを表示

docker32.png

コンテナ内の 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

docker33.png


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_swanson

docker ps -l 実行中のコンテナを表示します

docker34.png

実行中のコンテナ、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