ホームページ  >  記事  >  運用・保守  >  Docker学習コンテナの使い方を完全にマスターする

Docker学習コンテナの使い方を完全にマスターする

WBOY
WBOY転載
2022-01-17 18:46:342243ブラウズ

この記事では、Docker でのコンテナーの使用について説明します。お役に立てれば幸いです。

Docker学習コンテナの使い方を完全にマスターする

#コンテナを実行する

既存のイメージを見つけたい場合は、次のように実行できます。パブリック Docker Hub で検索すると、GitHub でオープンソース プロジェクトを見つけるのと同じように、その紹介と使用方法がここで見つかります。

Docker学習コンテナの使い方を完全にマスターする

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 を使用してコンテナーに名前を付けることができます。

Docker学習コンテナの使い方を完全にマスターする

#コンテナの奥深くに進む

#現在の状態では、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

Docker学習コンテナの使い方を完全にマスターする

使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。

Docker学習コンテナの使い方を完全にマスターする

另外,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 サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。