目次
方法 1: --restart オプションを使用する
方法 2: Docker Compose を使用する
方法 3: デーモン プロセスを使用する
方法 4: 外部監視を使用する
ホームページ 運用・保守 Docker docker がコンテナから出ない

docker がコンテナから出ない

May 16, 2023 pm 08:35 PM

Docker コンテナを終了せずに実行し続けるには、さまざまな方法があります。この記事では、一般的に使用されるいくつかの方法とその長所と短所について説明します。

方法 1: --restart オプションを使用する

Docker には、コンテナが異常終了したときにコンテナを自動的に再起動できるオプション --restart が用意されています。オプションの値には noon-failurealways という 3 つの値があり、それぞれ再起動なし、異常終了時に再起動、常に再起動に対応します。具体例:

docker run --restart=always IMAGE_NAME
ログイン後にコピー

--restart オプションを使用する利点は、コマンド ラインにオプションを追加するだけで済むため、シンプルで使いやすいことです。ただし、コンテナーでエラーが発生した場合、コンテナーが手動で停止されるまで再起動が続きます。これにより、コードが不安定になり、データ損失が発生する可能性があります。

方法 2: Docker Compose を使用する

Docker Compose は、複数の Docker コンテナーを定義して実行できるツールです。コンテナと起動パラメータの関係をymlファイルで記述できます。次の構成を docker-compose.yml ファイルに追加します:

version: '3'

services:
  app:
    build: .
    restart: always
ログイン後にコピー

その後、docker-compose コマンドを使用してコンテナーを起動できます:

docker-compose up -d
ログイン後にコピー

restart: always オプションは、コンテナーが異常終了したときにコンテナーを自動的に再起動するように Docker に指示します。この方法の利点は、複数のコンテナを管理できることであり、便利で高速ですが、コンテナが常に再起動されるという問題がまだあります。

方法 3: デーモン プロセスを使用する

デーモン プロセスを使用することは、Docker コンテナーが終了しないようにするための信頼できる方法です。コンテナ内でデーモンを起動し、デーモンの監視下で Docker コンテナを実行します。コンテナに問題がある場合、デーモンはコンテナを再起動します。

次の例は、supervisor デーモンを使用して Node.js サービスを開始する例です:

  1. スーパーバイザーのインストール:
npm install -g supervisor
ログイン後にコピー
  1. supervisord.conf ファイルを作成し、次の内容を追加します:
[supervisord]
nodaemon=true

[program:app]
command=supervisor app.js
directory=/app
autostart=true
autorestart=true
user=root
ログイン後にコピー
  1. Dockerfile に次の構成を追加します:
RUN apt-get update && apt-get install -y supervisor

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ログイン後にコピー

ミラーを生成してコンテナを起動します:

docker build -t IMAGE_NAME .
docker run -d IMAGE_NAME
ログイン後にコピー

デーモンを使用する利点は、コンテナの動作を柔軟に制御できることですが、追加の構成作業が必要であり、デーモンは、一部のシステム リソースを消費します。

方法 4: 外部監視を使用する

外部監視システムを使用して Docker コンテナを監視し、例外が発生した場合にコンテナを再起動すると、コンテナの動作をより柔軟に制御できます。コンテナに異常がある場合、監視システムはアラームの発行、ログの記録、コンテナの再起動などのアクションを実行できます。

たとえば、systemd を使用して Docker コンテナを監視できます。

  1. systemd ユニット ファイル (mydocker.service など) を作成します。 、ファイルの内容は次のとおりです。
[Unit]
Description=My Docker Container

[Service]
ExecStart=/usr/bin/docker start -a myapp
Restart=always
RestartSec=10s
ExecStop=/usr/bin/docker stop -t 2 myapp

[Install]
WantedBy=default.target
ログイン後にコピー

このファイルは、myapp という名前のコンテナーを定義します。コンテナーに問題が発生すると、systemd がコンテナーを自動的に再起動します。このサービスを有効にするには、systemctl コマンドを使用します。

sudo systemctl daemon-reload
sudo systemctl enable mydocker.service
sudo systemctl start mydocker.service
ログイン後にコピー

外部監視を使用する利点は、より柔軟でさまざまなサードパーティ監視システムを使用できることですが、追加の構成と設定が必要です。保守作業。

一般に、Docker コンテナを長期間実行し続ける方法は数多くありますが、それぞれに独自の長所と短所があります。具体的な選択は実際のニーズに基づいて行う必要があります。コンテナーを起動するときは、コンテナーの操作の安定性とセキュリティも考慮し、適切な自動化ツールを使用して手動操作を減らす必要があります。

以上がdocker がコンテナから出ないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエース Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエース Apr 06, 2025 am 12:01 AM

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerセキュリティ硬化:容量から容器を保護します Dockerセキュリティ硬化:容量から容器を保護します Apr 05, 2025 am 12:08 AM

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。

Dockerボリューム:コンテナ内の永続的なデータの管理 Dockerボリューム:コンテナ内の永続的なデータの管理 Apr 04, 2025 am 12:19 AM

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

LinuxでDockerを使用:包括的なガイド LinuxでDockerを使用:包括的なガイド Apr 12, 2025 am 12:07 AM

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワーク 高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワーク Apr 03, 2025 am 12:06 AM

Dockerは、ブリッジネットワーク、ホストネットワーク、オーバーレイネットワークの3つのメインネットワークモードを提供します。 1.ブリッジネットワークは、単一のホストでのコンテナー間通信に適しており、仮想ブリッジを介して実装されています。 2。ホストネットワークは、高性能ネットワークが必要なシナリオに適しており、コンテナはホストのネットワークスタックを直接使用します。 3.オーバーレイネットワークは、マルチホストDockerswarmクラスターに適しており、仮想ネットワークレイヤーを介してクロスホスト通信が実現されます。

Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築 Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築 Apr 09, 2025 am 12:11 AM

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。

Docker監視:メトリックの収集とコンテナの健康の追跡 Docker監視:メトリックの収集とコンテナの健康の追跡 Apr 10, 2025 am 09:39 AM

Docker監視の中核は、主にCPUの使用、メモリ使用、ネットワークトラフィック、ディスクI/Oなどのインジケーターを含む、コンテナの動作データを収集および分析することです。 Prometheus、Grafana、Cadvisorなどのツールを使用することにより、コンテナの包括的な監視とパフォーマンスの最適化を実現できます。

Dockerfileのベストプラクティス:効率的で最適化された画像を作成します Dockerfileのベストプラクティス:効率的で最適化された画像を作成します Apr 02, 2025 pm 02:07 PM

効率的で最適化されたDocker画像を作成する方法は? 1.公式画像や高山画など、適切な基本画像を選択します。 2。指示の順序を合理的に配置し、Dockerキャッシュメカニズムを使用します。 3.マルチステージ構造を使用して、画像サイズを縮小します。 4.ミラー層の数を最小限に抑え、実行命令をマージします。 5.不要なファイルスペースを避けるために、一時的なファイルをクリーンアップします。

See all articles