Docker は、開発者がアプリケーションとそのすべての依存関係を、展開および管理のためにポータブル コンテナにパッケージ化できる環境を提供するオープン ソースのコンテナ化プラットフォームです。 Docker コンテナの利点は、高速で軽量、強力な分離性と移植性があることです。ただし、実際のアプリケーションでは、サービスが正常かつ安定して実行されることを保証するために、実行直後に Docker コンテナーを終了しない機能が必要になることがよくあります。
この記事では、Docker コンテナを終了せずに実行する方法を紹介します。
Bash メソッドを使用して、終了せずに Docker コンテナーを実装します。次のコマンドを実行する必要があります:
docker run -it --name=容器名称 --restart=always 镜像名称 /bin/bash
このコマンドでは、「Docker コンテナの起動モードは、コンテナ名
という名前の対話型ターミナルです」と指定します。コンテナ名
は、再起動後にデフォルトの起動名に設定されます。コンテナーが異常終了しないようにします。それ自体を復元することはできません。 --restart=always
は、Docker コンテナーがクラッシュまたは停止したときにコンテナーを再起動する必要があることを指定するために使用され、Docker はコンテナーを自動的に再起動します。最後の イメージ名
は、コンテナーの起動に使用するイメージを示します。
Bash の使用に加えて、Python スクリプトを使用して Docker コンテナーの終了を防止することもできます。以下は Python スクリプトです:
import time while True: time.sleep(60)
このコードを run.py
ファイルとして保存し、次の行を Dockerfile に追加します:
CMD python /app/run.py
次に、 # を使用します。 ##docker buildこのコマンドは、Dockerfile をイメージとしてビルドし、次のコマンドを使用してコンテナーを実行します:
docker run -d --restart=always 镜像名称このコマンドでは、Docker コンテナーがバックグラウンド モードで開始されることを指定します。 、イメージ名は以前に構築されたものです。
--restart=always は、Docker コンテナーがクラッシュまたは停止したときにコンテナーを再起動する必要があることを指定するためにも使用されます。
RUN apt-get update && apt-get install -y supervisor RUN systemctl enable supervisor ADD supervisor.conf /etc/supervisor/conf.d/
ファイルの単純なバージョンです。
[supervisord] nodaemon=true [program:your_application_name] command=/bin/bash -c "while true; do echo hello world; sleep 10; done"
your_application_name という名前のプログラムを定義し、次のように指定します。
/bin/bash コマンドで実行され、
echo hello world; sleep 10; コマンドが無限ループで実行されます。
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
-n を渡します。 パラメーター。スーパーバイザー プロセスがフォアグラウンドで実行されるように設定します。スーパーバイザは起動時に、
/etc/supervisor/conf.d/ ディレクトリ内のすべての設定ファイルを検出し、それらを使用してコンテナ内のプロセスを管理します。
以上がDocker コンテナを使用して終了せずに実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。