今日、Dockerfile を使用してイメージを作成したときに問題が発生し、イメージの実行後にコンテナが自動的に終了しました。 開始コマンド:
実行後、docker psを使用してdockerコンテナが終了したことを確認します。 情報を検索したところ、この問題は複雑ではないことがわかりました。その理由は、Docker コンテナがバックグラウンドで実行される場合、フォアグラウンド プロセスが必ず存在するためです。 解決: 1. 実行中のプロセスをフォアグラウンドで開始します。例: nginx nginx -g "daemon off;" tomcat ./catalina.sh run 2. フォアグラウンドで実行できる tail、top などのプログラムを使用します。ログ ファイルを出力する場合は、特に tail が推奨されます。 DockerfileにENTRYPOINT /opt/tomcat7.0/bin/startup.sh && tail -F /opt/tomcat7.0/logs/catalina.outを追加します。 追加知識: docker pullで取得したTomcatはログを生成しなかったため、手動でtocmat dockerfileファイルを作成し、ログが生成されることを確認しました。 1. dockfileファイルとその説明は次のとおりです。 openjdk:8-jre から メンテナー 環境変数 JAVA_HOME /docker-java-home 環境変数 CATALINA_HOME /opt/tomcat 環境変数 PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/scripts #タイムゾーン RUN echo "Asia/Shanghai" > /etc/timezone mv /etc/localtime /etc/localtime_bak を実行します。 実行 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #トムキャット 環境 TOMCAT_MAJOR 8 環境変数 TOMCAT_VERSION 8.5.35 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz && \ を実行します。 tar -zxvf apache-tomcat-8.5.41.tar.gz && \ rm apache-tomcat*.tar.gz && \ mv apache-tomcat* ${CATALINA_HOME} chmod +x ${CATALINA_HOME}/bin/*sh を実行します。 chmod 777 ${CATALINA_HOME}/logs/ を実行します。 chmod 777 ${CATALINA_HOME}/webapps/ を実行します。 #ユーザー名とパスワードをadminに設定する tomcat-users.xml /opt/tomcat/conf/ を追加します。 #リモートアクセス ADD context.xml /opt/tomcat/webapps/manager/META-INF/ 環境変数 LANG zh_CN.UTF-8 #ポートEXPOSE 8080を開く # Tomcatを起動する ワークディレクトリ /opt/tomcat/bin CMD ["catalina.sh","実行"] 注意: このDockerは外部ファイルを参照する必要があります 詳細はgithubをご覧ください 2. Dockerfileコンパイルコマンド
3. コマンドを実行する docker run -d -p 8080:8080 --name tomcat8 -v /opt/docker-tomcat/logs/:/opt/tomcat/logs/ -v /opt/docker-tomcat/webapps/:/opt/tomcat/webapps/ -v /opt/docker-tomcat/context.xml:/opt/tomcat/webapps/manager/META-INF/context.xml -v /opt/docker-tomcat/tomcat-users.xml:/opt/tomcat/conf/tomcat-users.xml --privileged=true zyj/tomcat docker run コンテナが自動的に終了する問題に対する解決策は以上です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: vue3で注意すべき2つのポイントを詳しく解説:セットアップ
スプレッド演算子を使用すると、式をある時点で展開できます。スプレッド演算子は、複数のパラメーター (...
目次1. MySQLでよく使われる文字列関数2. 数値関数3. 日付と時刻の機能4. プロセス機能5...
MySQL はオープンソースの小規模リレーショナル データベース管理システムです。現在、MySQL...
序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...
CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...
関連記事: Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールする...
Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...
1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...
序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...
この記事では、ログインスライダー検証を実装するためのJavaScriptの具体的なコードを参考までに...
目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...
目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...
目次ネットワーク構成を表示するネットワークインターフェース情報を表示する---ifconfigルーテ...
環境の準備 Docker環境 MySQL 5.7 (公式イメージはmysql8をサポートしていません...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...