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;

}

}

}

相关推荐
识途老码38 分钟前
docker运行sqlserver
docker·容器·sqlserver
心之语歌1 小时前
Windows Docker Desktop 部署 SQL Server 2022 完整安装手册
windows·docker·容器
荔枝吻1 小时前
【保姆级喂饭教程】 Windows下WSL2+Docker+Qdrant安装教程
windows·docker·wsl2·qdrant
java_logo1 小时前
Docker 部署 TypeWords:轻松搭建英语单词与文章练习平台
运维·docker·容器·轩辕镜像·typewords·英语单词练习·四级单词练习
程序员老赵1 小时前
Docker 部署 Calibre-Web:轻松搭建网页版电子书管理平台
docker·开源·电子书
程序员良辰2 小时前
【TongWeb7的M11】 首次登录密码修改 & 开启控制台远程访问
java·中间件·tomcat
无望__wsk2 小时前
k8s控制器
java·docker·kubernetes
不好听6132 小时前
Dockerfile 实战:把第一个 Node 服务容器化
docker·容器
川石课堂软件测试2 小时前
自动化测试常见的异常处理
python·jmeter·mysql·docker·容器·单元测试·grafana
翔云1234562 小时前
在nginx中,proxy_next_upstream off是什么含义
nginx