この記事では、Docker でのコンテナーの使用について説明します。お役に立てれば幸いです。
#コンテナを実行する
既存のイメージを見つけたい場合は、次のように実行できます。パブリック Docker Hub で検索すると、GitHub でオープンソース プロジェクトを見つけるのと同じように、その紹介と使用方法がここで見つかります。 Docker Hub を初めて使用する場合は、まずアカウントを登録し、上部の検索ボックスに「ubuntu」と入力すると、最初に見つかった結果は公式の ubuntu イメージです。をクリックすると上のページが表示されます。 このページには、イメージの基本情報と使用方法の紹介が記載されており、右側の docker pull ubuntu コマンドは、イメージをローカルにプルするために使用されます。前の記事で述べたように、コンテナーをインスタンス化するときに、指定されたイメージが Docker によってローカルで見つからない場合は、Docker が自動的にそれをプルするため、ローカルで直接実行できます。docker run -i -t ubuntu /bin/bashこのコマンドには、さらにいくつかのパラメーターがあります。最後の例です。以下で説明しましょう:
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 を使用してコンテナーに名前を付けることができます。 #コンテナの奥深くに進む #現在の状態では、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 を使用してソフトウェアパッケージ。
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 stop detached_modedocker start コマンドを使用して再起動することも、docker restart を使用して実行中のコンテナを再起動することもできます。 コンテナの実行ステータス
在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。
docker logs -f detached_mode
此时就可以看到一直有 Docker YYDS 被打印。
除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。
docker top detached_mode
使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。
另外,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 サイトの他の関連記事を参照してください。