Dockerコンテナが起動直後に終了する問題を解決する

Dockerコンテナが起動直後に終了する問題を解決する

最近、Docker がコンテナの起動時に特定のプロセスを直接実行できるようにする方法を調べていたところ、コンテナの起動時に Dockerfile でコンテナ実行コマンドを指定できることが分かりました。

CMD を指定しますが、各 Dockerfile には 1 つの CMD 命令しか含めることができません。複数の CMD 命令を指定した場合、最後の命令のみが実行されます。

そこで方法を考えて、スクリプトを書いて、スクリプト内で複数のプロセスを開始し、Dockerfile でスクリプトを実行しました。

最終的に、この方法は実行可能であることが証明されました。しかし、実験中に問題が発生しました。コンテナは起動後すぐに停止しました。

情報を参照した後:

Docker コンテナは、一度に 1 つのプロセスのみを管理できます。このプロセスが終了すると、コンテナも終了します。ただし、これはコンテナが 1 つのプロセスのみを実行できるという意味ではありません (他のプロセスはバックグラウンドで実行できます)。ただし、コンテナが終了しないようにするには、フォアグラウンドでプロセスが実行されている必要があります。

解決:

スクリプト内の最後のプロセスはフォアグラウンド モードで実行する必要があります。つまり、プロセスの最後に & (& はバックグラウンド実行を意味します) を追加しないでください。そうしないと、コンテナーが終了します。

補足知識: docker コンテナで gdbserver を使用する際の問題と解決策

dockerコンテナでgdbserverを使用するときに問題が発生します

linux_ptrace_test_ret_to_nx: PTRACE_TRACEME できません: 操作は許可されていません

その理由は、Docker はデフォルトで PTRACE 機能を無効にしており、コンテナの実行時に有効にする必要があるためです。

docker run -ti --cap-add=SYS_PTRACE ubuntu

起動後すぐにdockerコンテナが終了する問題を解決する上記の記事は、編集者が皆さんと共有する内容のすべてです。 皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明
  • Dockerは起動されていないコンテナの設定情報を変更します
  • Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード
  • Docker ファイルの保存パス、コンテナの起動コマンド操作の取得
  • Docker はすべてのコンテナをバッチ起動して閉じます

<<:  MySQL フラッシュリストとダーティページフラッシュメカニズム

>>:  JavaScript のドキュメント オブジェクト モデル (DOM)

推薦する

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

Ubuntu 19にTheanoをインストールする際の問題を解決する

解決: pythearn2 パッケージをダウンロードしたディレクトリで、setup.py ファイルを...

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

この記事では、Vueのフロントエンドページングとバックエンドページングを実装する方法を説明します。

目次1: フロントエンドの手書きページング(データ量が少ない場合) 2: バックエンドのページング、...

jsのイベントループ機構の解析

序文ご存知のとおり、JavaScript は本質的にシングルスレッドですが、ブラウザは非同期リクエス...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図

1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...

h1、h2、h3タグを適切に使用する

Web ページを作成する過程では、<h1>、<h2>、<h3> ...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...

JavaScript演算子の使用に関するヒントをいくつか共有します

目次1. オプションの連鎖演算子 [? .】 2. 論理的な空の代入 (?? =) 3. 論理和代入...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

Docker swarm の簡単なチュートリアル

3つの仮想マシン132、133、134を群がらせる1. クラスターを初期化し、自分自身をクラスターに...

HTML の表の行と列を結合する問題の解決策の詳細な説明

私たちが構築しようとしていたウェブサイトには、長い文章だけでなく、多数の表も含まれており、表のレイア...

Linux centos7 環境での MySQL インストール チュートリアル

Linux centos7 環境に MySQL をインストールする手順の詳細な紹介MySQLをインス...