怎么使用supervisor管理nginx+tomcat容器
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,怎么使用supervisor管理nginx+tomcat容器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求:使用do
千家信息网最后更新 2026年11月01日怎么使用supervisor管理nginx+tomcat容器
怎么使用supervisor管理nginx+tomcat容器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
需求:
使用docker来启动nginx + tomcat 双进程,实际应用中,多进程还是比较常见的。
1: 创建dockerfile目录
mkdir -p /docker/web
2: 编写dockerfile: /docker/web/Dockerfile
FROM centos7MAINTAINER lin test@163.comCOPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repoCOPY nginx_install.sh /tmp/nginx_install.shRUN sh /tmp/nginx_install.sh; \rm -rf /usr/local/src/*RUN sed -i -e '/worker_processes/a daemon off;' /usr/local/nginx/conf/nginx.conf; COPY jdk-8u162-linux-x64.tar.gz /usr/local/src/jdk-8u162-linux-x64.tar.gzCOPY tomcat_install.sh /tmp/tomcat_install.shRUN sh /tmp/tomcat_install.sh; \rm -rf /usr/local/src/* COPY supervisor_install.sh /tmp/supervisor_install.shCOPY supervisord.conf /etc/supervisord.confCOPY start_tomcat.sh /usr/local/tomcat/bin/mystart.shRUN sh /tmp/supervisor_install.sh; \rm -rf /tmp/*.sh
3: dockerfile集成的配置文件及安装文件
3.1 默认源下载较慢,更换yum源,以下CentOS-Base.repo配置文件拷贝到容器里更换
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo[root@docker web]# cat CentOS-Base.repo [base]name=CentOS-$releasever - Basebaseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates[updates]name=CentOS-$releasever - Updatesbaseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful[extras]name=CentOS-$releasever - Extrasbaseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plusbaseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=file:///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 cd /usr/local/srcwget 'http://nginx.org/download/nginx-1.12.2.tar.gz'tar -zxvf nginx-1.12.2.tar.gzcd nginx-1.12.2./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_modulemakemake installexit 0
3.3tomcat安装脚本
[root@docker web]# cat tomcat_install.sh yum install -y wget tarcd /usr/local/src/tar -zxvf jdk-8u162-linux-x64.tar.gzmv jdk1.8.0_162 /usr/local/#/usr/local/jdk1.8.0_162/bin/java -version #配置java环境变量echo 'JAVA_HOME=/usr/local/jdk1.8.0_162/' >>/etc/profileecho 'PATH=$PATH:$JAVA_HOME/bin' >>/etc/profileecho 'CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profilesource /etc/profile wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gztar -zxvf apache-tomcat-8.5.38.tar.gzmv apache-tomcat-8.5.38 /usr/local/tomcat
3.4dockerfile文件中涉及到的配置文件、脚本、安装包如下
[root@docker web]# lltotal 185384-rw-r--r-- 1 root root 835 Mar 9 01:12 CentOS-Base.repo-rw-r--r-- 1 root root 669 Mar 9 01:11 Dockerfile-rw-r--r-- 1 root root 189815615 Mar 9 01:15 jdk-8u162-linux-x64.tar.gz-rw-r--r-- 1 root root 340 Mar 9 01:13 nginx_install.sh-rw-r--r-- 1 root root 581 Mar 9 01:17 tomcat_install.sh
4: 一键安装supervisor: /docker/web/supervisor_install.sh
yum -y install epel-releaseyum -y install python2-pippip install supervisor
5: supervisor配置文件: /docker/web/supervisord.conf
[unix_http_server]file=/tmp/supervisor.sock ; the path to the socket file [supervisord]logfile=/tmp/supervisord.log ; 日志logfile_maxbytes=50MB ; 最大50M日志logfile_backups=10 ; 轮循日志备份10个loglevel=info ; 日志等级记录info的pidfile=/tmp/supervisord.pid ;pidnodaemon=true ;在前台启动minfds=102400 ; 文件描述符限制minprocs=2000 ; 进程数 [rpcinterface:supervisor]supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl]serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket [program:nginx]command=/usr/local/nginx/sbin/nginx ; 前台启动nginxautostart=true ; 随着supervisor自动启动startsecs=10 ; 启动10s后算正常启动autorestart=true ; 程序退出后自动重启startretries=3 ; 启动失败自动重试次数stdout_logfile_maxbytes=20MB ;stdout 日志文件大小最大20Mbstdout_logfile=/usr/local/nginx/logs/out.log [program:tomcat]command=sh /usr/local/tomcat/bin/mystart.sh ; 前台启动tomcatautostart=true ; 随着supervisor自动启动startsecs=10 ; 启动10s后算正常启动autorestart=true ; 程序退出后自动重启startretries=3 ; 启动失败自动重试次数stdout_logfile_maxbytes=20MB ;stdout 日志文件大小最大20Mbstdout_logfile=/usr/local/tomcat/logs/catalina.out
6: tomcat的启动脚本/docker/web/start_tomcat.sh
#由于supervisor无法使用source,需要编写个脚本来启动source /etc/profile/usr/local/tomcat/bin/catalina.sh run
7: 构建镜像
cd /docker/webdocker build -t shijiange_web .[root@docker web]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEshijiange_web latest bc06a9974252 7 seconds ago 1.33 GB
8: 启动容器测试
[root@docker web]# docker run -d shijiange_web /bin/bash -c 'supervisord -c /etc/supervisord.conf'76782ab71c3b1d2f818ad76214d6336ae11a524eeb9d211f154fe4ad5226015d[root@docker web]# [root@docker web]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES76782ab71c3b shijiange_web "container-entrypo..." 12 seconds ago Up 12 seconds happy_jones
9.测试验证:
[root@docker web]# docker exec -it 76782ab /bin/bashbash-4.2# ifconfig
10.容器验证:curl nginx
11.容器验证:curl tomcat
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
文件
日志
容器
脚本
配置
最大
前台
进程
验证
大小
次数
程序
需求
帮助
测试
管理
清楚
内容
变量
备份
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
广州大一互联网络科技有限公司
苏州找大状互联网科技有限公司
国智互联网科技
互联网通讯科技
互联网中国科技
互联网 卓越科技
有马互联网科技
互联网金融科技委员会
互联网科技股有哪些
互联网科技素材视频竖屏
互联网科技公司需要的职位
深圳国际航运科技和互联网
广西互联网科技孵化中心
996高科技互联网公司
互联网在线教育科技创业
烟台灵鸽互联网科技有限公司
普陀区互联网教育科技管理办法
宁波允成互联网科技有限公司
高科技和互联网的现代国家
互联网新科技
广州淘业互联网络科技
高科技互联网
互联网核心科技是什么
苏州大垚互联网科技
中盈科技互联网信息有限公司
上海乐五互联网科技有限公司
互联网科技对化妆品行业
山东亿川互联网科技有限责任公司
株洲百竞科技的互联网营销顾问