Docker应用部署tomcat和nginx

一、部署tomcat

1.拉取镜像

root@docker_dev mysql# docker pull tomcat

2.部署tomcat

root@docker_dev \~# rm -rf \~tomcat/

root@docker_dev \~# mkdir tomcat

root@docker_dev \~# cd tomcat/

root@docker_dev tomcat# docker run -id --name=c_tomcat \

> -p 8080:8080 \

> -v $PWD:/user/local/tomcat/webapps \

> tomcat

3.验证

#tomcat 的默认 Web 应用根目录(webapps)是存放 Web 应用的地方

在webapps下面创建一个test目录(应用名字),在test下面创建一个html文件

root@docker_dev tomcat# docker exec -it c_tomcat /bin/bash #进入容器

root@b4432a89096e:/usr/local/tomcat/webapps/test# pwd

/usr/local/tomcat/webapps/test

root@b4432a89096e:/usr/local/tomcat/webapps/test# cat index.html

<h1> hello tomcat docker </h1>

二、部署nginx

1.拉取镜像

root@docker_dev mysql# docker pull nginx

2.部署nginx

root@docker_dev \~# mkdir nginx

root@docker_dev \~# cd nginx/

root@docker_dev nginx# mkdir conf

root@docker_dev nginx# vim nginx.conf #附件有nginx.conf内容参考

root@docker_dev nginx# mv nginx.conf conf/

root@docker_dev nginx# docker run -id --name=c_nginx \

> -p 80:80 \

> -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \

> -v $PWD/logs:/var/log/nginx \

> -v $PWD/html:/usr/share/nginx/html \

> nginx

3.验证

#nginx 的默认 Web 应用根目录(html)是存放 Web 应用的地方

在html下面创建一个html文件

同tomcat一样测试即可

附录

root@docker_dev conf# cat nginx.conf

运行用户(默认通常为 nobody,可根据实际情况修改)

user nginx;

Nginx 进程数,通常设置为 CPU 核心数

worker_processes auto;

错误日志路径及级别(debug/info/notice/warn/error/crit)

error_log /var/log/nginx/error.log warn;

进程 PID 文件

pid /var/run/nginx.pid;

工作模式及连接数上限

events {

每个 worker 进程的最大连接数

worker_connections 1024;

支持多路复用 I/O 模型(Linux 推荐 epoll,FreeBSD 推荐 kqueue)

use epoll;

}

HTTP 核心配置

http {

引入 MIME 类型定义(Nginx 内置)

include /etc/nginx/mime.types;

default_type application/octet-stream;

日志格式定义(main 为自定义名称,可在虚拟主机中引用)

log_format main 'remote_addr - remote_user $time_local "$request" '

'status body_bytes_sent "$http_referer" '

'"http_user_agent" "http_x_forwarded_for"';

访问日志路径(引用上面定义的 main 格式)

access_log /var/log/nginx/access.log main;

开启高效文件传输模式

sendfile on;

防止网络阻塞(配合 sendfile 使用)

tcp_nopush on;

减少网络报文数量

tcp_nodelay on;

连接超时时间(秒)

keepalive_timeout 65;

开启 gzip 压缩(减少传输数据量)

gzip on;

压缩级别(1-9,级别越高压缩率越高,CPU 消耗越大)

gzip_comp_level 2;

压缩的文件类型

gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

引入虚拟主机配置(通常将每个站点配置放在 conf.d 目录下)

include /etc/nginx/conf.d/*.conf;

默认虚拟主机(当未匹配到其他主机时使用)

server {

监听端口(HTTP 默认为 80)

listen 80;

服务器名称(可填写域名,多个域名用空格分隔)

server_name localhost;

字符集设置

charset utf-8;

根目录(网站文件存放路径)

root /usr/share/nginx/html;

默认索引文件(优先级从左到右)

index index.html index.htm index.php;

访问根路径的处理

location / {

尝试查找请求的文件,不存在则返回 404

try_files uri uri/ =404;

}

处理 404 错误(可自定义错误页面)

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

处理 50x 系列错误(500/502/503/504)

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

}

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ33 分钟前
nginx部署教程
运维·网络·nginx
一个向上的运维者2 小时前
Docker 自定义网络中容器无法通过宿主机 IP 访问服务的完整排障记录
网络·tcp/ip·docker
ClouGence2 小时前
CloudDM 3.1.0 发布:初始化、驱动管理与升级体验全面优化
docker·开源·数据库管理·企业开发·数据库工具·数据库运维
zandy10113 小时前
Hermes Agent 安装与配置全流程(2026年6月最新版)
docker·agent·安装教程·kimi
取经蜗牛3 小时前
Docker 常用命令全面总结
运维·docker·容器
翔云1234564 小时前
Kubernetes 与 Docker Compose:异同详解
docker
m0_744724934 小时前
Tomcat相关
java·tomcat
Irene19914 小时前
(AI总结版)Docker + HBase 安装全过程总结(WSL2 + Win11)
docker·hbase
lee_curry4 小时前
tomcat+springmvc+spring源码流通过程
java·spring·tomcat·springmvc
tongluowan0074 小时前
负载均衡之硬件与软件层面的异同
运维·nginx·负载均衡·f5