必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際のアプリケーションでは、複数のプロセスが非常に一般的です。 1: Dockerfileディレクトリを作成する mkdir -p /docker/web 2: Dockerfile を書き込む: /docker/web/Dockerfile Centos7から メンテナー lin [email protected] CentOS-Base.repo をコピー /etc/yum.repos.d/CentOS-Base.repo nginx_install.sh をコピー /tmp/nginx_install.sh sh /tmp/nginx_install.sh を実行します。\rm -rf /usr/local/src/* sed -i -e '/worker_processes/a daemon off;' /usr/local/nginx/conf/nginx.conf を実行します。 jdk-8u162-linux-x64.tar.gz をコピー /usr/local/src/jdk-8u162-linux-x64.tar.gz tomcat_install.sh をコピー /tmp/tomcat_install.sh sh /tmp/tomcat_install.sh を実行します。\rm -rf /usr/local/src/* supervisor_install.sh をコピー /tmp/supervisor_install.sh supervisord.conf をコピー /etc/supervisord.conf コピー start_tomcat.sh /usr/local/tomcat/bin/mystart.sh sh /tmp/supervisor_install.sh; を実行してください。\rm -rf /tmp/*.sh 3: Dockerfileに統合された設定ファイルとインストールファイル 3.1 デフォルトのソースダウンロードは遅いので、yumソースを変更し、次のCentOS-Base.repo構成ファイルをコンテナにコピーして変更します。 CentOS-Base.repo をコピー /etc/yum.repos.d/CentOS-Base.repo [root@docker web]# cat CentOS-Base.repo [ベース] name=CentOS-$releasever - ベース ベースURL=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #リリースされたアップデート [更新] name=CentOS-$releasever - アップデート ベースURL=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #役に立つかもしれない追加パッケージ [特典] name=CentOS-$releasever - 追加情報 ベースURL=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #既存のパッケージの機能を拡張する追加パッケージ [セントオスプラス] name=CentOS-$releasever - プラス ベースURL=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 有効=0 gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 3.2nginx インストール スクリプト [root@docker web]# cat nginx_install.sh yum install -y wget tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel /usr/local/src をコピーします 'http://nginx.org/download/nginx-1.12.2.tar.gz' を実行します。 tar -zxvf nginx-1.12.2.tar.gz nginx-1.12.2をインストールします ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_module 作る インストールする 終了 0 3.3Tomcat インストール スクリプト [root@docker web]# cat tomcat_install.sh yum インストール -y wget tar /usr/local/src/ をコピーします tar -zxvf jdk-8u162-linux-x64.tar.gz mv jdk1.8.0_162 /usr/local/ #/usr/local/jdk1.8.0_162/bin/java -バージョン #Java 環境変数を設定する echo 'JAVA_HOME=/usr/local/jdk1.8.0_162/' >>/etc/profile echo 'PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile echo 'CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profile ソース /etc/profile https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz を実行します。 tar -zxvf apache-tomcat-8.5.38.tar.gz Apache Tomcat 8.5.38 を実行します。 3.4 dockerfileファイルに含まれる設定ファイル、スクリプト、インストールパッケージは次のとおりです。 [root@docker web]# ll 合計 185384 -rw-r--r-- 1 ルート ルート 835 3月 9日 01:12 CentOS-Base.repo -rw-r--r-- 1 ルート ルート 669 3月 9日 01:11 Dockerfile -rw-r--r-- 1 ルート ルート 189815615 3月9日 01:15 jdk-8u162-linux-x64.tar.gz -rw-r--r-- 1 ルート ルート 340 3月 9日 01:13 nginx_install.sh -rw-r--r-- 1 ルート ルート 581 3月 9日 01:17 tomcat_install.sh 4: スーパーバイザーのワンクリックインストール: /docker/web/supervisor_install.sh yum -y epel-release をインストールします yum -y python2-pip をインストールします pip インストール スーパーバイザー 5: スーパーバイザー設定ファイル: /docker/web/supervisord.conf [unix_http_サーバー] file=/tmp/supervisor.sock ; ソケットファイルへのパス [監督者] logfile=/tmp/supervisord.log; logfile_maxbytes=50MB; 最大 50MB logfile_backups=10; ローテーション内の 10 個のログ バックアップloglevel=info; ログ レベル レコード情報pidfile=/tmp/supervisord.pid;pid nodaemon=true ; フォアグラウンドで起動 minfds=102400 ; ファイル記述子の制限 minprocs=2000 ; プロセス数 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [スーパーバイザーctl] serverurl=unix:///tmp/supervisor.sock ; unix ソケットの場合は unix:// URL を使用します [プログラム:nginx] command=/usr/local/nginx/sbin/nginx ; フォアグラウンドでnginxを起動します autostart=true; supervisor で自動的に起動しますstartsecs=10; 起動後 10 秒後に通常の起動と見なされますautorestart=true; プログラム終了後に自動的に再起動しますstartretries=3; 起動が失敗した場合の自動再試行回数stdout_logfile_maxbytes=20MB; stdout ログ ファイルの最大サイズは 20Mb です stdout_logfile=/usr/local/nginx/logs/out.log [プログラム:tomcat] command=sh /usr/local/tomcat/bin/mystart.sh ; tomcatをフォアグラウンドで起動します autostart=true; supervisor で自動的に起動しますstartsecs=10; 起動後 10 秒後に通常の起動と見なされますautorestart=true; プログラム終了後に自動的に再起動しますstartretries=3; 起動が失敗した場合の自動再試行回数stdout_logfile_maxbytes=20MB; stdout ログ ファイルの最大サイズは 20Mb です stdout_logfile=/usr/local/tomcat/logs/catalina.out 6: tomcat 起動スクリプト /docker/web/start_tomcat.sh #スーパーバイザーはソースを使用できないため、ソース/etc/profileを起動するスクリプトを作成する必要があります。 /usr/local/tomcat/bin/catalina.sh を実行 7: イメージを構築する cd /docker/web shijiange_web を実行します。 [root@docker web]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ shijiange_web 最新 bc06a9974252 7秒前 1.33 GB 8: コンテナテストを開始する [root@docker web]# docker run -d shijiange_web /bin/bash -c 'supervisord -c /etc/supervisord.conf' 76782ab71c3b1d2f818ad76214d6336ae11a524eeb9d211f154fe4ad5226015d [ルート@dockerウェブ]# [root@docker web]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 76782ab71c3b shijiange_web 「container-entrypo...」 12秒前 12秒前 happy_jones 9. テスト検証: [root@docker web]# docker exec -it 76782ab /bin/bash bash-4.2# ifconfig 10. コンテナの検証: curl nginx 11. コンテナの検証: curl tomcat 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: jsは赤い封筒の順序と量を指定するアルゴリズムを実装します
>>: Reactイベントスロットリング効果が失敗する理由と解決策
複数テーブルクエリ複数のテーブルから関連するクエリ結果を取得するには、単一の SELECT ステート...
豊富なオプションを備えた強力なエディターとして、Vim は多くのユーザーに愛されています。この記事で...
による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...
1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...
1. 分業とプロセス<br />Tudou.comでは、プロジェクト開発が中核であり、誰...
Nginxの仕組みNginx はコアとモジュールで構成されています。 Nginx 自体は実際にはほと...
適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...
目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...
序文: vue3.0の要素フレームワークを使用します。要素はvue2.0をサポートしており、vue3...
この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...
MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...
reactプロジェクトで非常に一般的なシナリオ: const [watchValue、setWatc...
react-native インストールプロセス1.npx react-native init Awe...
Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...
私は 1 年以上 Java Web 開発に携わっており、HTML または JSP ページの作成は避け...