docker run後にコンテナがExited (0)と表示される問題を解決する

docker run後にコンテナがExited (0)と表示される問題を解決する

Centos7 上で openresty 用の Dockerfile を作成し、ビルドしました。

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx

その後、docker ps -aは次のように表示します。

コンテナ ID イメージ コマンド 作成日時 ステータス ポート 名前 9dee2d04b3b5 openresty:1.19 "/usr/local/openrest…" 24 秒前 終了 (0) 7 秒前 gifted_bhabha 69846af3baa7 redis:latest "docker-entrypoint.s…" 24 分前 24 分前起動 0.0.0.0:6379->6379/tcp rds

openresty のステータスは終了 (0) と表示されます。

理由:

Docker の仕組みは、コンテナをバックグラウンドで実行することです。少なくとも 1 つのフォアグラウンド プロセスが必要です。コンテナによって実行されるコマンドが中断されたコマンド (top、tail の実行など) でない場合は、自動的に終了します。

解決する:

-g "daemon off;" 構成項目を含む sh コマンドを使用して、nginx サービスをフォアグラウンド モードで起動できます。

したがって、起動コマンドは次のように調整されます。

docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx -g "デーモンをオフにします。"

効果を確認するには、docker ps -aを再度実行します。

コンテナ ID イメージ コマンド 作成日時 ステータス ポート 名前 0291303ca61b openresty:1.19 "/usr/local/openrest…" 29 秒前 28 秒前 起動 strange_curie 69846af3baa7 redis:latest "docker-entrypoint.s…" 26 分前 26 分前 起動 0.0.0.0:6379->6379/tcp rds

補足: Docker は起動時に常に終了状態になります。解決策

Dockerは起動時に常に終了状態になります

回避策

ステップ1. Docker rm container idでコンテナを削除します

ステップ 2: docker rmi イメージ ID を使用してイメージを削除します (イメージは、最初にコンテナを削除した後にのみ削除できます)

ステップ3: docker build -t tomcat:centos 。コンテナを再作成します。

ステップ4. docker run --privileged -it -d --name tomcat01 -p 1216:8080 tomcat:centos (権限を追加)

擬似端末を指定する)

エラーの原因 1. 権限がない 2. 端末が実行されていない

注: –privileged は権限を追加します

-tは擬似端末を指定します

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • 時間のかかるDockerエラーのトラブルシューティングプロセス記録
  • Docker Dockerデーモンに接続できません。このホストでDockerデーモンが実行されていますか?エラーの解決方法
  • Dockerデーモンが起動できません: 保存されたUUIDと一致しませんエラーの解決方法
  • 複数の Docker コンテナが同じポート番号を持たない場合の解決策
  • Dockerコンテナ終了エラーコードの手順

<<:  CSS トランジションを使用した円形ホバー効果のサンプルコード

>>:  誤って削除されたデータを復元するための mysqlbinlog コマンドを使用した mysql の実装

推薦する

mysql8.0.11 winx64 手動インストールと設定チュートリアル

まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...

この記事では、CSSのようなJSモジュールをインポートする方法を説明します。

目次序文構築可能なスタイルシートとは何ですか? CSSモジュールスクリプトの使用インポートアサーショ...

Vue v-onディレクティブの使用について

目次1. イベントのリスニング2. イベントパラメータを渡す3. イベント修飾子ケース1: クリック...

Tomcat 7.0 で仮想ディレクトリを設定し、仮想パスを構成する方法

Tomcat7.0は仮想ディレクトリを設定します(1)現在、当社のウェブサイトはデフォルトのディレク...

Vue3.0 ルーティング自動インポート方法の例

1. 前提条件インポートには require.context メソッドを使用します。vite で作成...

Docker で Jenkins サービスを構築する例

画像をプルする root@EricZhou-MateBookProX: docker pull je...

VUE と Canvas を使用して Thunder Fighter タイピング ゲームを実装する方法

今日は、サンダーファイタータイピングゲームを実装します。ゲームプレイは非常に簡単です。それぞれの「敵...

スケルトン スクリーンの読み込みプレースホルダー アニメーション効果を実装するための CSS + HTML (アニメーション付き)

効果上から下へフェードアウト ソースコードhtml、Angular構文を使用して、必要な構文を取得す...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

Mac で Docker を使用して Oracle をデプロイする方法

Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...

Vueで親子コンポーネント通信を実装する方法

目次1. 親コンポーネントと子コンポーネントの関係2. 小道具3. $エミット4. $親V. 結論 ...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...

MySQL 5.7を完全にアンインストールするための詳細な手順

この記事は主に、MySQLを再インストールする際のクリーンでないアンインストールのさまざまな問題をま...