この記事では、Docker でのコンテナーの使用について説明します。お役に立てれば幸いです。
![Docker学習コンテナの使い方を完全にマスターする](https://img.php.cn/upload/article/000/000/067/61e547d3d3c7f144.jpg)
#コンテナを実行する
既存のイメージを見つけたい場合は、次のように実行できます。パブリック Docker Hub で検索すると、GitHub でオープンソース プロジェクトを見つけるのと同じように、その紹介と使用方法がここで見つかります。
![1642416203655286.png Docker学習コンテナの使い方を完全にマスターする](https://img.php.cn/upload/image/392/576/327/1642416203655286.png)
Docker Hub を初めて使用する場合は、まずアカウントを登録し、上部の検索ボックスに「ubuntu」と入力すると、最初に見つかった結果は公式の ubuntu イメージです。をクリックすると上のページが表示されます。
このページには、イメージの基本情報と使用方法の紹介が記載されており、右側の docker pull ubuntu コマンドは、イメージをローカルにプルするために使用されます。前の記事で述べたように、コンテナーをインスタンス化するときに、指定されたイメージが Docker によってローカルで見つからない場合は、Docker が自動的にそれをプルするため、ローカルで直接実行できます。
docker run -i -t ubuntu /bin/bash
ログイン後にコピー
このコマンドには、さらにいくつかのパラメーターがあります。最後の例です。以下で説明しましょう:
- -i コンテナ内で STDIN がオンになっていることを確認できます
- -t 疑似TTY ターミナル
- ubuntu はイメージの名前で、前の例の hello-world
- /bin に相当します。起動後にコンテナ内で実行されるコマンドです。
-i および -t パラメータを使用すると、コンテナの実行後にコンテナと対話できます。コンテナーが作成されると、Docker はコンテナー内で /bin/bash コマンドを実行するため、コンテナーの実行後、ターミナルがコンテナーに接続されます。 #この時点で、ターミナルを開いて docker ps コマンドを入力すると、開始されたコンテナーが表示されます。結果は次のとおりです:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Up 4 hours reverent_wu
ログイン後にコピー
これには、コンテナーの ID、イメージ、最後に実行されたコマンド、作成時刻、ステータスと名前。ここでの reverent_wu という名前は Docker によって自動的に生成されます。コンテナーの作成時に名前を指定する必要がある場合は、 --name を使用してコンテナーに名前を付けることができます。
![1642416234538871.png Docker学習コンテナの使い方を完全にマスターする](https://img.php.cn/upload/image/350/478/839/1642416234538871.png)
#コンテナの奥深くに進む
#現在の状態では、ubuntu システムでサポートされているすべてのコマンドを、接続されているターミナルで実行できます。コンテナ。たとえば、hostname コマンドを入力すると、コンテナのホスト名がそのコンテナ ID であることがわかります。
次に、/etc/hosts ファイルを見てみましょう: root@402c5d3468d7:/# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 402c5d3468d7
ログイン後にコピー
また、コンテナ内のプロセスを自分で表示してみることもできますし、apt-get を使用してソフトウェアパッケージ。
最後に、exit コマンドを入力してコンテナを起動し、ホストのコマンド プロンプトに戻ります。この時点で docker ps を実行すると、作成したばかりの ubuntu コンテナーがコンテナーのリストに存在しないことがわかります。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ログイン後にコピー
終了すると、コンテナは実行を停止します。ただし、コンテナーは削除されていません。 docker ps -a コマンドを使用すると、コンテナーが開始されているかどうかに関係なく、作成されたすべてのコンテナーを表示できます:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Exited (0) 2 minutes ago reverent_wu
ログイン後にコピー
この時点で、ステータスは終了 (0) に変わります。 ) 2 minutes ago は、2 分前に起動されたことを示し、終了ステータス コードは 0 で、正常に終了したことを示します。
次のコマンドでこのコンテナを再起動できます:
docker start 402c5d3468d7
ログイン後にコピー
このコマンドでは、docker start の後にコンテナの ID を指定するか、コンテナの名前を使用することもできます。実行が成功すると、 docker ps コマンドでコンテナーが開始状態にあることがわかります。 docker start コマンドでコンテナーが再起動された後、 docker run コマンドで指定されたパラメーターが使用されます。起動時に /bin/bash が実行されてシェルが起動されますが、コンテナのコマンドラインにはまだ入っていません。 dockerattach コマンドを使用して再度入力できます:
docker attach 402c5d3468d7
ログイン後にコピー
この時点では、コンテナー内でコマンドの実行を続けることができます。
コンテナーが使用されなくなった場合は、docker rm コマンドを使用して削除できます。
docker rm 402c5d3468d7
ログイン後にコピー
継続的なサービスの提供
サービスを提供するために、コンテナを使用してアプリケーションやサービスを実行し、それをバックグラウンドで永続化したいことがよくあります。 、コンテナをデタッチ モード (またはデーモン モード) で実行する必要があります。 docker の実行後に -d パラメーターを追加するだけで、コンテナーがバックグラウンドで実行できるようになります。
次に、次のコマンドを使用してコンテナを再度実行します。 docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"
ログイン後にコピー
今回は、コンテナを明確にdetached_modeと呼び、 -d を渡して切り離しモードで実行させ、スクリプトを実行します。これは、1 秒ごとに Docker YYDS の行を出力します。
セパレートモードで実行されるため、起動後にコマンドラインで印刷内容を確認することはできません。ただし、 docker ps コマンドを使用すると、コンテナーが実行されていることがわかります。
実行を停止したい場合は、docker stop コマンドを使用できます。
docker stop detached_mode
ログイン後にコピー
docker start コマンドを使用して再起動することも、docker restart を使用して実行中のコンテナを再起動することもできます。
コンテナの実行ステータス
在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。
docker logs -f detached_mode
ログイン後にコピー
此时就可以看到一直有 Docker YYDS 被打印。
除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。
docker top detached_mode
ログイン後にコピー
![1642416354101297.png Docker学習コンテナの使い方を完全にマスターする](https://img.php.cn/upload/image/159/402/794/1642416354101297.png)
使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。
![1642416359656670.png Docker学習コンテナの使い方を完全にマスターする](https://img.php.cn/upload/image/640/243/159/1642416359656670.png)
另外,docker exec 命令可以在容器内部运行进程。
docker exec detached_mode cat /etc/hosts
ログイン後にコピー
以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。
容器的详细信息
使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。
docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode
ログイン後にコピー
执行以上的命令,只会在命令行展示容器的 IP 地址。
推荐学习:《docker视频教程》
以上がDocker学習コンテナの使い方を完全にマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。