検索
ホームページ運用・保守Dockerdocker がコンテナから出ない

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 までご連絡ください。
LinuxとDocker:さまざまなLinux分布のDockerLinuxとDocker:さまざまなLinux分布のDockerApr 19, 2025 am 12:10 AM

Ubuntu、Centos、およびDebianにDockerをインストールして使用する方法は異なります。 1)ubuntu:aptパッケージマネージャーを使用します。コマンドはsudoapt-getupdate && sudoapt-getinstalldocker.ioです。 2)Centos:Yum Package Managerを使用すると、Dockerリポジトリを追加する必要があります。コマンドは、sudoyumininstall-yyum-utils && sudoyum-config-manager - add-repohttps://download.docker.com/linです

Mastering Docker:Linuxユーザー向けガイドMastering Docker:Linuxユーザー向けガイドApr 18, 2025 am 12:08 AM

LinuxでDockerを使用すると、開発効率が向上し、アプリケーションの展開を簡素化できます。 1)Ubuntu画像を引く:dockerpullubuntu。 2)ubuntuコンテナを実行:Dockerrun-itubuntu/bin/bash。 3)nginxを含むDockerFileを作成します:fromubuntu; runapt-getupdate && apt-getinstall-ynginx; expose80。 4)画像の作成:dockerbuild-tmy-nginx。 5)コンテナの実行:Dockerrun-D-P8080:80

LinuxのDocker:アプリケーションとユースケースLinuxのDocker:アプリケーションとユースケースApr 17, 2025 am 12:10 AM

Dockerは、Linuxのアプリケーションの展開と管理を簡素化します。 1)Dockerは、アプリケーションとその依存関係を軽量でポータブルコンテナにパッケージ化するコンテナ化されたプラットフォームです。 2)Linuxでは、DockerはCgroupと名前空間を使用して、コンテナの分離とリソース管理を実装します。 3)基本的な使用には、画像の引き込みと実行容器が含まれます。 DockerComposeなどの高度な使用は、マルチコンテナーアプリケーションを定義できます。 4)一般的に使用されるDockerLogsとDockerexecコマンドをデバッグします。 5)パフォーマンスの最適化は、マルチステージの構造により画像サイズを縮小することができ、DockerFileをシンプルに保つことがベストプラクティスです。

Docker:移植性とスケーラビリティのためのコンテナ化アプリケーションDocker:移植性とスケーラビリティのためのコンテナ化アプリケーションApr 16, 2025 am 12:09 AM

Dockerは、アプリケーションのパッケージ化、配布、およびアプリケーションの携帯性とスケーラビリティを改善するために使用されるLinuxコンテナテクノロジーベースのツールです。 1)DockerBuildおよびDockerrunコマンドを使用して、Dockerコンテナを構築および実行できます。 2)DockerComposeを使用して、マルチコンテナーDockerアプリケーションを定義および実行して、マイクロサービス管理を簡素化します。 3)マルチステージの構造を使用すると、画像サイズを最適化し、アプリケーションの起動速度を向上させることができます。 4)コンテナログの表示は、コンテナの問題をデバッグする効果的な方法です。

Dockerによってコンテナを起動する方法Dockerによってコンテナを起動する方法Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Dockerからログを表示する方法Dockerからログを表示する方法Apr 15, 2025 pm 12:24 PM

Dockerログを表示する方法は次のとおりです。たとえば、Docker Logsコマンドを使用します。たとえば、Docker logs container_name docker execコマンドを使用して /bin /shを実行し、logファイルを表示します。 cat /var/log/container_name.log docker-compose -f docker-comのDocker ComposeのDocker-Composeログを使用します。

Dockerコンテナの名前を確認する方法Dockerコンテナの名前を確認する方法Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Docker用のコンテナを作成する方法Docker用のコンテナを作成する方法Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール