今日、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つのポイントを詳しく解説:セットアップ
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
インライン形式<colgroup>...</colgroup>属性名 属性値...
iframe の使い方:コードをコピーコードは次のとおりです。 <DIV align=cent...
コードをコピーコードは次のとおりです。 <フォームメソッド="post" ...
面接官から「NodeJS で複数のプロセスを開始する方法を教えてください」と尋ねられることがあります...
最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...
一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...
この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...
目次1. はじめに2. vue-cli の紹介2.1 コマンドライン2.2 CLI サービス2.3 ...
SELECT ステートメントの完全な構文は次のとおりです。 (7)選択 (8) DISTINCT ...
Centos7では、/etc/rc.d/rc.localファイルの権限が削減されており、実行権限があ...
学ぶ内容1. ソフトウェアのインストールとサーバーの設定。 2. (オプションですが、強くお勧めしま...
プロジェクトを作成しているときに、ユーザーがアクションを実行し、特定の状態を変更し、ページを更新して...
Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...
この記事では、例を使用して、MySQL スケジュール タスクの実装と使用方法を説明します。ご参考まで...