Part01-基础概念与理论知识
1.1 容器化部署优势
将Web应用容器化部署具有以下优势:
- 环境一致性:开发、测试、生产环境完全一致
- 快速部署:容器启动快,部署效率高
- 资源隔离:应用之间相互隔离,互不影响
- 易于扩展:可以快速扩展应用实例
- 便于迁移:容器可以在不同平台间轻松迁移
1.2 Nginx容器化要点
| 配置项 | 说明 | 示例 |
|---|---|---|
| 端口映射 | 将容器端口映射到主机端口 | -p 80:80 |
| 数据卷 | 持久化配置和静态文件 | -v /data/nginx:/usr/share/nginx/html |
| 环境变量 | 配置应用参数 | -e TZ=Asia/Shanghai |
| 网络配置 | 配置容器网络 | –network mynet |
| 资源限制 | 限制CPU和内存使用 | –memory=”512m” |
1.3 Docker网络基础
- bridge:默认网络模式,容器间可以通信
- host:使用主机网络栈
- none:无网络配置
- container:共享另一个容器的网络
- 自定义网络:用户定义的网络
Part02-实战环境准备与配置
2.1 创建项目目录结构
# mkdir -p /opt/nginx-app
# mkdir -p /opt/nginx-app/html
# mkdir -p /opt/nginx-app/conf
# mkdir -p /opt/nginx-app/logs
# mkdir -p /opt/nginx-app/data
# 2. 查看目录结构
# tree /opt/nginx-app
/opt/nginx-app
├── conf
├── data
├── html
└── logs
4 directories, 0 files
# 3. 创建静态网页文件
# cat > /opt/nginx-app/html/index.html << 'EOF'
Nginx容器化部署成功!
部署信息:
- 容器名称:nginx-web
- 端口映射:8080 -> 80
- 部署时间:2026-04-02
- 部署方式:Docker容器
这是一个使用Docker容器化部署的Nginx Web服务器。
容器化部署具有环境一致、快速部署、易于扩展等优势。
EOF
# 4. 创建关于页面
# cat > /opt/nginx-app/html/about.html << 'EOF'
关于我们
这是一个使用Docker容器化部署的Nginx Web服务器演示项目。
技术栈
- Web服务器:Nginx
- 容器技术:Docker
- 操作系统:RHEL 10
特性
- 容器化部署
- 数据持久化
- 配置管理
- 日志管理
EOF
# 5. 查看创建的文件
# ls -la /opt/nginx-app/html/
total 16
-rw-r–r–. 1 root root 1234 Apr 2 12:00 about.html
-rw-r–r–. 1 root root 2345 Apr 2 12:00 index.html
2.2 创建Nginx配置文件
# cat > /opt/nginx-app/conf/nginx.conf << 'EOF' user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; keepalive_timeout 65; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml; server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } location /health { access_log off; return 200 "healthy\n"; add_header Content-Type text/plain; } error_page 404 /404.html; location = /404.html { internal; } } } EOF # 2. 创建404页面 # cat > /opt/nginx-app/html/404.html << 'EOF'
404
抱歉,您访问的页面不存在。
EOF
# 3. 查看配置文件
# ls -la /opt/nginx-app/conf/
total 4
-rw-r–r–. 1 root root 1234 Apr 2 12:00 nginx.conf
Part03-核心命令实操演示
3.1 运行Nginx容器
# docker run -d \
–name nginx-web \
-p 8080:80 \
-v /opt/nginx-app/html:/usr/share/nginx/html \
-v /opt/nginx-app/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /opt/nginx-app/logs:/var/log/nginx \
-e TZ=Asia/Shanghai \
–restart unless-stopped \
nginx:latest
1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3
# 2. 查看运行中的容器
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b2c3d4e5f6a nginx:latest “/docker-entrypoint.…” 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp nginx-web
# 3. 查看容器详细信息
# docker inspect nginx-web | grep -A 10 “Mounts”
“Mounts”: [
{
“Type”: “bind”,
“Source”: “/opt/nginx-app/html”,
“Destination”: “/usr/share/nginx/html”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
},
{
“Type”: “bind”,
“Source”: “/opt/nginx-app/conf/nginx.conf”,
“Destination”: “/etc/nginx/nginx.conf”,
“Mode”: “ro”,
“RW”: false,
“Propagation”: “rprivate”
},
{
“Type”: “bind”,
“Source”: “/opt/nginx-app/logs”,
“Destination”: “/var/log/nginx”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
]
3.2 测试Web应用
# curl http://localhost:8080
Nginx容器化部署成功!
部署信息:
- 容器名称:nginx-web
- 端口映射:8080 -> 80
- 部署时间:2026-04-02
- 部署方式:Docker容器
这是一个使用Docker容器化部署的Nginx Web服务器。
容器化部署具有环境一致、快速部署、易于扩展等优势。
# 2. 测试关于页面
# curl http://localhost:8080/about.html
关于我们
这是一个使用Docker容器化部署的Nginx Web服务器演示项目。
技术栈
- Web服务器:Nginx
- 容器技术:Docker
- 操作系统:RHEL 10
特性
- 容器化部署
- 数据持久化
- 配置管理
- 日志管理
