今日、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. Pro...
文字列関数文字ascii(str)のASCIIコード値をチェックし、strが空の文字列の場合は0を返...
目次1 ストレステストの指標1.1 秒あたり1.2 クォータ1.3 平均処理時間(RT) 1.4 同...
Navicat は、データベースに接続するときにエラー 10060 および 1045 を報告します...
質問:最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトは...
Python バージョンを確認します (python -V)。2.7 未満の場合は、アップグレードす...
Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...
目次背景解決策1アイデア:コード:解決策2アイデア:要約する参照する背景日付と時間をフォーマットする...
目次1. インストールとインポート2. 手ぶれ補正機能を定義する3. チャートコードを描くinit ...
目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...
目次リレーショナルデータベースとは何ですか?非リレーショナルデータベースとは何ですか? MySQL ...
1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...
ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...
序文誰もが日常業務で SQL の最適化を経験したことがあると思います。したがって、最適化の前に、遅い...
実際、上記の 3 つの表はいずれも 3 行 3 列です。区切り線を非表示にするコツはルールにあります...