Docker コンテナに入った後、コンテナを終了すると、コンテナは Exited 状態に変わります。では、コンテナをシャットダウンせずにコンテナを終了するにはどうすればよいでしょうか。 コンテナを閉じずに通常通り終了する場合は、Ctrl+P+Q を押してコンテナを終了します。これは非常に重要なので、覚えておいてください。 次の例では、コンテナを閉じずに終了します。 [root@localhost ~]# docker アタッチ c600c4519fc8 [root@c600c4519fc8 /]# 終了 出口 [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 c600c4519fc8 centos "/bin/bash" 3時間前 終了 (0) 1秒前 pensive_jackson 5a7a0d694651 busybox "sh" 20 時間前 終了 (0) 20 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 46 時間前 終了 (0) 46 時間前 hopeful_yonath [root@localhost ~]# docker start pensive_jackson 物思いにふけるジャクソン [root@localhost ~]# docker アタッチ c600c4519fc8 Ctrl + P + Q [root@c600c4519fc8 /]# エスケープシーケンスを読み取ります [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 c600c4519fc8 centos "/bin/bash" 3 時間前 22 秒前 pensive_jackson 5a7a0d694651 busybox "sh" 20 時間前 終了 (0) 20 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 46 時間前 終了 (0) 46 時間前 hopeful_yonath 実際には、コンテナを起動するときに設定し、-d パラメータを追加してコンテナを起動することができます。もちろん、このコマンドは新しいコンテナの起動に限定されており、閉じたコンテナを起動することはできません。 ヒント1 docker run -d: コンテナをバックグラウンドで実行し、コンテナIDを返します。 次の例では、docker -dを使用してコンテナを起動し、終了します。 [root@localhost ~]# docker run -i -t -d centos /bin/bash 8521b11d5d99535d4cb0080adc5a58a4dd018ecd0751d9945f7da7ab01bec330 [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 8521b11d5d99 centos "/bin/bash" 4秒前 4秒前 イーガー_goldwasser c600c4519fc8 centos "/bin/bash" 3 時間前 終了 (0) 28 秒前 pensive_jackson 5a7a0d694651 busybox "sh" 20 時間前 終了 (0) 20 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 46 時間前 終了 (0) 46 時間前 hopeful_yonath [root@localhost ~]# docker アタッチ 8 [ルート@8521b11d5d99 /]# uname -r 3.10.0-514.el7.x86_64 [root@8521b11d5d99 /]# 終了 出口 [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 8521b11d5d99 centos "/bin/bash" 2 分前 終了 (0) 2 秒前 early_goldwasser c600c4519fc8 centos "/bin/bash" 3 時間前 終了 (0) 2 分前 pensive_jackson 5a7a0d694651 busybox "sh" 20 時間前 終了 (0) 20 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 46 時間前 終了 (0) 46 時間前 hopeful_yonath ここで、-d コマンドで終了した後もコンテナーがまだ停止していることに気付くかもしれません。実践的な友人は、docker run -d でコンテナーを起動しただけでも停止していることに気付くかもしれません。 ここで理解する必要があるのは、コンテナの動作メカニズムです。Docker コンテナはバックグラウンドで実行され、フォアグラウンド プロセスが必要です。ここでは、コンテナが -d の起動後も存続できるように、コンテナでフォアグラウンド プログラムを実行させます。 [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 c600c4519fc8 centos "/bin/bash" 3 時間前 終了 (0) 4 分前 pensive_jackson 5a7a0d694651 busybox "sh" 21 時間前 終了 (0) 21 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 47 時間前 終了 (0) 47 時間前 hopeful_yonath [root@localhost ~]# docker run -d centos /bin/bash -c "nohup ping -i 1000 www.baidu.com" 8aa19c9604382bc019797ccda831ae1bcebd81d86380b6040d636e03000b440a [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 8aa19c960438 centos "/bin/bash -c 'nohup..." 2秒前 2秒前 adoring_wing c600c4519fc8 centos "/bin/bash" 3 時間前 終了 (0) 5 分前 pensive_jackson 5a7a0d694651 busybox "sh" 21 時間前 終了 (0) 21 時間前 hungry_vaughan 4b0296d18849 hello-world "/hello" 47 時間前 終了 (0) 47 時間前 hopeful_yonath 私は、1000 秒ごとに Baidu に ping するプロセスをバックグラウンドで実行するために nohup を使用しています。また、「while true; do echo hello world; sleep 1; done」を使用して、hello world を無限に出力することもできます。 また、バックグラウンドでプロセスが動いていたとしても、コンテナに入って exit と入力するとコンテナは終了してしまいますので、ご注意ください。 私の意見では、Ctrl+P+Q が依然として最良の方法です。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します
1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...
CSS でテキストアイコンを実装する方法 /*アイコンスタイル*/ .nav-icon-norma...
この記事では、例を使用して、MySQL のさまざまな一般的な結合テーブルクエリについて説明します。ご...
1. 設置前の清掃 rpm -qa | grep jdk rpm -qa | grep gcj yu...
前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...
1. ダウンロードしたファイルを以下のように解凍します。 。 2. 環境変数に解凍ディレクトリを追加...
1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...
uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...
Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...
この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...
WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...
Mybatis ファジークエリ実装方法mybatis のリバース アシスタントは非常に使いやすく、通...
導入EXISTS は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されま...
MySQL でグループ化した後、各グループの最大値を取得する詳細な例1. テストデータベーステーブル...
tomcat が起動されるたびに、次のログ ファイルがログ ディレクトリに自動的に生成され、日付順...