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 の実装

推薦する

CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介

概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...

CSSはグラデーションを巧みに利用して高度な背景光アニメーションを実現します

成し遂げるこの効果は CSS を使用して完全に再現することは困難です。 CSS でシミュレートされた...

Ubuntu の起動後にアプリケーションを実行するためのターミナルの設定方法

1.メニューバーにスタートと入力し、スタートアップアプリケーションをクリックして入力します。 2. ...

MySQL インデックスの効率的な使用ガイド

序文ほとんどの方がMySQLとインデックスを使用したことがあると思いますが、適切なインデックスを作成...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Deepin Linuxでカーネルを手動でアップグレードする方法

deepinとUbuntuどちらもdebianをベースにしたディストリビューションであり、ここではU...

Linux で Sudo を使用して権限を委譲する

sudo 権限委譲の概要su スイッチ ID: su –l ユーザー名 –c 'コマンド&#...

ReactでuseStateを使用する詳細な例

使用状態useState は、関数コンポーネント内で呼び出すことで、コンポーネントに内部状態を追加し...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...

Centos7 への MySQL8 のインストールチュートリアル

MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...

VueのTodoListケースの詳しい説明

<テンプレート> <div id="ルート"> <...

CSS3 の display:grid、グリッドレイアウトの紹介

1. グリッドレイアウト(グリッド): Web ページをグリッドに分割し、さまざまなグリッドを組み合...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...

Facebook によるインターネット サービスのほぼ完璧な再設計

<br />出典: http://www.a-xuan.cn/?p=197 先ほどFac...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...