English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Docker コンテナの使用

Docker クライアント

docker クライアントは非常にシンプルで、docker コマンドを直接入力することで、Docker クライアントのすべてのコマンドオプションを確認できます。

w3codebox@w3codebox:~# docker

以下のコマンドを使用して: docker command --help 指定された Docker コマンドの使用方法についてさらに詳しく学びたい場合は。

例えば、以下のように確認できます: docker stats コマンドの具体的な使用方法:

w3codebox@w3codebox:~# docker stats --help

コンテナを使用する

イメージを取得する

ローカルに 'ubuntu' イメージがない場合、docker pull コマンドを使用してイメージをインポートできます:

$ docker pull ubuntu

コンテナを起動する

以下のコマンドは、'ubuntu' イメージを使用してコンテナを起動し、コマンドラインモードでコンテナに入るパラメータを指定します:

$ docker run -it ubuntu /bin/bash

パラメータの説明:

  • -i: インタラクティブ操作。

  • -t: ターミナル。

  • ubuntu: ubuntu イメージ。

  • /bin/bash:イメージ名の後に置かれるのはコマンドです。ここでは、インタラクティブなシェルを希望しているため、以下のように使用しています: /bin/bash。

ターミナルを退出するには、直接以下のように入力します: exit:

root@ed09e4490c57:/# exit

停止しているコンテナを起動する

すべてのコンテナを確認するコマンドは以下の通りです:

$ docker ps -a

画像をクリックして拡大表示:

docker start コマンドを使用して停止しているコンテナを起動します:

$ docker start b750bbbcfd88

バックグラウンドで実行

多くのシーンでは、dockerのサービスがバックグラウンドで実行されることを希望します。そのためには、以下のように設定します: -d はコンテナの実行モードを指定します。

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

画像をクリックして拡大表示:

注:加えられた -d パラメータはデフォルトでコンテナに入りません。コンテナに入りたい場合は、以下のコマンドを使用します: docker exec(以下に説明します)。

コンテナを停止する

コンテナを停止するコマンドは以下の通りです:

$ docker stop <コンテナ ID>

停止しているコンテナを docker restart コマンドで再起動できます:

$ docker restart <コンテナ ID>

コンテナに入る

使用する際に -d パラメータが指定された場合、コンテナが起動するとバックグラウンドに移動します。この時、コンテナに入りたい場合は以下のコマンドを使用します:

  • docker attach

  • docker exec:皆さんに docker exec コマンドを使用することをお勧めします。なぜなら、このコマンドでコンテナのターミナルが終了してもコンテナ自体が停止しないからです。

attachコマンド

以下はdocker attachコマンドの使用例を示しています。

$ docker attach 1e560fca3906

注意: このコンテナから退出すると、コンテナが停止します。

execコマンド

以下はdocker execコマンドの使用例を示しています。

docker exec -it 243c32535da7 /bin/bash

注意: このコンテナから退出すると、コンテナは停止しません。これが、docker execを使用することを推奨する理由です。 docker exec の理由です。

詳細なパラメータ説明については、docker execを使用してください。 --helpコマンドで確認してください。

コンテナのエクスポートとインポート

コンテナをエクスポートする

ローカルのコンテナをエクスポートする場合は、 docker export コマンド。

$ docker export 1e560fca3906 > ubuntu.tar

コンテナをエクスポートする 1e560fca3906 スナップショットをローカルファイルに保存 ubuntu.tar。

これにより、コンテナスナップショットをローカルファイルにエクスポートします。

コンテナスナップショットのインポート

docker importを使用して、コンテナのスナップショットファイルからイメージに再インポートすることができます。以下の例では、スナップショットファイルubuntu.tarをイメージtestにインポートします。/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

また、URLや特定のディレクトリを指定してインポートすることもできます。例えば:

$ docker import http://example.com/exampleimage.tgz example/imagerepo

コンテナを削除

コンテナを削除するために使用 docker rm コマンド:

$ docker rm -f 1e560fca3906

以下のコマンドは、終了状態のすべてのコンテナをクリーンアップします。

$ docker container prune

webアプリケーションを実行する

前に実行したコンテナには特に役立つものはありませんでした。

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

Python Flaskアプリケーションをwebアプリケーションとして実行するdockerコンテナ内で実行します。

w3codebox@w3codebox:~# docker pull training/webapp  # イメージをロード
w3codebox@w3codebox:~# docker run -d -P training/000 training

パラメータ説明:

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

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

WEBアプリケーションコンテナを確認してください

使用 docker ps 来查看我们正在运行的容器:

w3codebox@w3実行中のコンテナを確認
CONTAINER ID        IMAGE               COMMAND             ...        PORTS                 
d3d5e39codebox:~#  docker ps9d3        training/使用 docker ps で実行中のコンテナを確認します:32769->5000/codebox:~$ docker port wizardly_chandrasekhar

CONTAINER ID        IMAGE               COMMAND             ...        PORTS

webapp     "python app.py"     ...        0.0.0.0:
Running on http:32769->5000/codebox:~$ docker port wizardly_chandrasekhar

ここにポート情報が追加されました。 5PORTS 32769 DockerはPORTSをオープンしました。

000 端口(デフォルトのPython Flaskポート)がホストポートにマッピングされています。

上。 -この時、ブラウザでWEBアプリケーションにアクセスできます。

w3codebox@w3p パラメータを使用して異なるポートを設定できます: -d -codebox:~$ docker run 5p5000:/000 training

docker pswebapp python app.py

w3codebox@w3実行中のコンテナを確認
CONTAINER ID         IMAGE                             PORTS                     NAMES
bf08b7f2cd89        training/webapp     ...          0.0.0.0:5000->5000/tcp    wizardly_chandrasekhar
d3d5e39codebox:~#  docker ps9d3        training/webapp     ...          0.0.0.0:32769->5000/ed

tcp   xenodochial_hoov 5コンテナ内の 5000 端口が当てはまるローカルホストマシン

000 端口上。

ネットワークポートのショートカット docker ps を通じてコマンドを使用して、コンテナのポートマッピングを確認できます。 docker を使用して別のショートカットも提供されています を使用して docker port

指定された(IDまたは名前)のコンテナの特定のポートがホストマシンのポートにマッピングされていることを確認できます。 bf08b7f2cd89  上で作成したWEBアプリケーションコンテナのIDは wizardly_chandrasekhar名前が

。8b7f2cd89  私は docker port bf0を使用できます。

w3codebox@w3または docker port wizardly_chandrasekhar でコンテナのポートのマッピング状況を確認できます。8b7f2cd89
5000/codebox:~$ docker port wizardly_chandrasekhar -tcp5000
w3codebox@w3codebox:~$ docker port bf0
5000/codebox:~$ docker port wizardly_chandrasekhar -tcp5000

> 0.0.0.0:

WEBアプリケーションのログを確認

w3codebox@w3docker logs [IDまたは名前] でコンテナ内の標準出力を確認できます。 -codebox:~$ docker logs8b7f2cd89
 * f bf0//Running on http:5000/ 0.0.0.0:+(Press CTRL
192.168.239.1 - - 009/[0/2016 16:3May370: / C to quit)/1.1favicon.ico HTTP 2HTTP -
192.168.239.1 - - 009/[0/2016 16:3May370: /] "GET/1.1favicon.ico HTTP 404 -

-" f: docker logs docker logsのように使用 tail -f 同様にコンテナ内の標準出力を出力します。

上から見ると、アプリケーションが使用しているのは 5000 ポートでアプリケーションのアクセスログを確認できます。

WEBアプリケーションコンテナのプロセスを確認

さらに docker top を使用して、コンテナ内で実行されているプロセスを確認できます。

w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar
UID     PID         PPID          ...       TIME                CMD
root    23245       23228         ...       00:00:00            python app.py

WEBアプリケーションを確認

を使用して docker inspect を参照して Docker のベース情報を確認します。それは Docker コンテナの設定と状態情報を記録する JSON ファイルを返します。

w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar
[
    {
        "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85,
        "Created": "2018-09-17T01:41:26.174228707Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 23245,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-09-17T01:41:26.494185806Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        }
......

WEBアプリケーションコンテナを停止

w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar   
wizardly_chandrasekhar

WEBアプリケーションコンテナの再起動

停止されているコンテナは、コマンド docker start を使用して起動できます。

w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar
wizardly_chandrasekhar

docker ps -l クエリ最後に作成されたコンテナ:

#  docker ps -l 
CONTAINER ID         IMAGE                             PORTS                     NAMES
bf08b7f2cd89        training/webapp     ...          0.0.0.0:5000->5000/tcp    wizardly_chandrasekhar

実行中のコンテナは、docker restart コマンドを使用して再起動できます。

WEBアプリケーションコンテナの削除

不要なコンテナを削除するために、docker rm コマンドを使用できます

w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar  
wizardly_chandrasekhar

コンテナを削除する際には、コンテナが停止状態でなければなりません。そうでないと以下のようなエラーが発生します

w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar
デーモンからのエラーレスポンス:実行中のコンテナbf0を削除することはできません8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. コンテナを削除または強制的に削除する前に、コンテナを停止してください