Dockerコンテナの高度な操作
3730 ワード
前の記事では、Nginxの例を紹介しましたが、Nginxのようなコンテナでは、起動に成功した後、Nginxの構成を変更する必要が避けられません.では、この変更はどのように完了しますか?
とりつけようき
依存コンテナこれは主にインタラクティブコンテナに対して,このコマンドには一定の限界があり,理解として利用でき,本格的な作業では使用が少ない.
このとき容器のコマンドラインに入って操作できます.コンテナが閉じられているか、またはコンテナがバックグラウンドコンテナである場合、このコマンドは使用できません.以上の操作から分かるように、このコマンドの限界は大きく、使用シーンも少ないので、理解としてください.
コンテナ内実行コマンド
コンテナがバックグラウンドで起動した場合、
コンテナ情報の表示
コンテナの作成に成功すると、ユーザーは
コンテナプロセスの表示
コンテナログの表示
インタラクティブコンテナは、ログがコンソールで直接印刷されるため、ログを表示するのに便利ですが、バックグラウンドコンテナでは、ログを表示する場合はdockerが提供する
まずログを打つコンテナを起動し、
dockerの大きな利点は移植性であるため,dockerコンテナは任意に導入導出操作を行うことができる.
コンテナのエクスポート
コンテナである以上、DockerもVMWareのように異なるシステム間で容易にコピーできることを望んでいますが、DockerはVMWareエクスポートコンテナほど便利ではありません(実際には、VMWareにはコンテナエクスポート操作は存在せず、インストールディレクトリを直接コピーすればよい)、Dockerではexportコマンドを使用してコンテナをエクスポートできます.具体的な操作は以下の通りです.
この例では、まずnginxコンテナを作成し、起動します.起動に成功したら、ローカルのindex.htmlファイルをコンテナにアップロードします.
nginxトップページの表示内容を変更する
まずnginxというコンテナを実行し、ホストでindex.htmlファイルを編集し、編集が完了したらコンテナにアップロードします.その後、ブラウザにhttp://localhost:80と入力すると、変更に成功したことがわかります.
次にexportコマンドでコンテナをエクスポートします.次のようにします.
このコマンドは、コンテナをdockerディレクトリにインポートします.エクスポートが成功すると、このエクスポートファイルを任意に伝播することができ、他のパートナーに送信して使用することができます.VMWareの膨大なファイルに比べて、このエクスポートファイルは非常に小さいです.普通は数百兆しかないかもしれませんが、もちろん具体的な状況も見ます.
コンテナのインポート
他のパートナーはこのファイルを入手し、次のコマンドを実行してコンテナをインポートできます(自分で再インポートする場合は、dockerとnginxに関連するコンテナとミラーを削除することを覚えておく必要があります).
コンテナのインポートに成功すると、
より多くの乾物は移動してください:https://antoniopeng.com
とりつけようき
$ docker attach
依存コンテナこれは主にインタラクティブコンテナに対して,このコマンドには一定の限界があり,理解として利用でき,本格的な作業では使用が少ない.
docker attach
コマンドを使用する場合は、まずコンテナが起動していることを確認し、そのコマンドを使用してコンテナに入ることができます.具体的な手順は次のとおりです.# ,
$ docker run --name ubuntu -it ubuntu
# ,
$ docker attach ubuntu
このとき容器のコマンドラインに入って操作できます.コンテナが閉じられているか、またはコンテナがバックグラウンドコンテナである場合、このコマンドは使用できません.以上の操作から分かるように、このコマンドの限界は大きく、使用シーンも少ないので、理解としてください.
コンテナ内実行コマンド
コンテナがバックグラウンドで起動した場合、
docker exec
を使用してコンテナ内でコマンドを実行できます.docker attach
とは異なり、docker exec
を使用するとユーザが端末から退出してもコンテナは停止せず、docker attach
を使用するとユーザが端末から退出するとコンテナは停止する.このような特性に基づいて,我々は今後,容器内部を操作する際に,基本的にdocker exec
コマンドにより実現する.コンテナ情報の表示
コンテナの作成に成功すると、ユーザーは
docker inspect
コマンドでコンテナの詳細を表示できます.これらの詳細には、コンテナのid、コンテナ名、環境変数、実行コマンド、ホスト構成、ネットワーク構成、データボリューム構成などの情報が含まれます.formatパラメータを使用して、ユーザーが関心を持っているデータのみを表示します.#
$ docker inspect -f='{{.State.Running}}' ubuntu
# IP
$ docker inspect -f='{{.NetworkSettings.IPAddress}}' ubuntu
# 、 ID
$ docker inspect -f='{{.Name}} {{.ID}}' Ubuntu
#
$ docker inspect -f='{{.HostConfig}}' ubuntu
コンテナプロセスの表示
docker top
コマンドを使用して、コンテナで実行中のプロセスを表示します.まず、コンテナが起動していることを確認し、docker top
コマンドを実行します.$ docker top
コンテナログの表示
インタラクティブコンテナは、ログがコンソールで直接印刷されるため、ログを表示するのに便利ですが、バックグラウンドコンテナでは、ログを表示する場合はdockerが提供する
docker logs
コマンドを使用して表示できます.$ docker logs ubuntu
まずログを打つコンテナを起動し、
docker logs
コマンドでログを表示しますが、デフォルトでは履歴ログしか表示されず、リアルタイムログを表示できません.-f
パラメータを使用すると、リアルタイムログを表示できます.--tail
パラメータを使用すると、ログの出力行数を正確に制御でき、-t
パラメータを使用すると、ログの出力時間を表示できます.また、-f
パラメータが追加されているため、他のログが出力され続けます.また、-t
パラメータが追加されたため、時間はログとともに印刷された.$ docker logs -f --tail=3 -t ubuntu
dockerの大きな利点は移植性であるため,dockerコンテナは任意に導入導出操作を行うことができる.
コンテナのエクスポート
コンテナである以上、DockerもVMWareのように異なるシステム間で容易にコピーできることを望んでいますが、DockerはVMWareエクスポートコンテナほど便利ではありません(実際には、VMWareにはコンテナエクスポート操作は存在せず、インストールディレクトリを直接コピーすればよい)、Dockerではexportコマンドを使用してコンテナをエクスポートできます.具体的な操作は以下の通りです.
この例では、まずnginxコンテナを作成し、起動します.起動に成功したら、ローカルのindex.htmlファイルをコンテナにアップロードします.
$ docker run -itd --name nginx -p 80:80 nginx
nginxトップページの表示内容を変更する
$ vi ./blog/docker/index.html
$ docker cp ./blog/docker/index.html nginx:/usr/share/nginx/html/
まずnginxというコンテナを実行し、ホストでindex.htmlファイルを編集し、編集が完了したらコンテナにアップロードします.その後、ブラウザにhttp://localhost:80と入力すると、変更に成功したことがわかります.
次にexportコマンドでコンテナをエクスポートします.次のようにします.
$ docker export nginx > ./blog/docker/nginx.tar
このコマンドは、コンテナをdockerディレクトリにインポートします.エクスポートが成功すると、このエクスポートファイルを任意に伝播することができ、他のパートナーに送信して使用することができます.VMWareの膨大なファイルに比べて、このエクスポートファイルは非常に小さいです.普通は数百兆しかないかもしれませんが、もちろん具体的な状況も見ます.
コンテナのインポート
他のパートナーはこのファイルを入手し、次のコマンドを実行してコンテナをインポートできます(自分で再インポートする場合は、dockerとnginxに関連するコンテナとミラーを削除することを覚えておく必要があります).
$ cat nginx.tar | docker import - importednginx:ilatest
コンテナのインポートに成功すると、
docker run
コマンドで実行できます.実行に成功した後、私たちは自分でカスタマイズしたindex.htmlページが依然として存在していることを発見しました.これは私たち自身のコンテナであることを示しています.より多くの乾物は移動してください:https://antoniopeng.com