# 拉取最新版 Nginx 镜像
docker pull nginx
# 运行一个临时容器用于测试
docker run --name my-nginx -p 80:80 -d nginx
mkdir -p ~/nginx-docker/{conf,html,logs,ssl}
# 运行临时容器
docker run --name temp-nginx -d nginx
# 复制默认配置文件到本地
docker cp temp-nginx:/etc/nginx/nginx.conf ~/nginx-docker/conf/
docker cp temp-nginx:/etc/nginx/conf.d ~/nginx-docker/conf/
# 删除临时容器
docker rm -f temp-nginx
docker run --name my-nginx \
-p 80:80 \
-p 443:443 \
-v ~/nginx-docker/html:/usr/share/nginx/html \
-v ~/nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/nginx-docker/conf/conf.d:/etc/nginx/conf.d \
-v ~/nginx-docker/logs:/var/log/nginx \
-v ~/nginx-docker/ssl:/etc/nginx/ssl \
-d nginx
编辑 ~/nginx-docker/conf/nginx.conf
文件,添加自定义配置。
在 ~/nginx-docker/conf/conf.d/
目录下创建配置文件,例如 default.conf
:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
将证书文件放入 ~/nginx-docker/ssl/
目录,然后在配置文件中添加 SSL 配置。
# 重启容器
docker restart my-nginx
# 查看日志
docker logs my-nginx
# 进入容器
docker exec -it my-nginx bash
# 测试 Nginx 配置
docker exec -it my-nginx nginx -t
创建 docker-compose.yml
文件:
version: '3'
services:
nginx:
image: nginx
container_name: my-nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx-docker/html:/usr/share/nginx/html
- ./nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx-docker/conf/conf.d:/etc/nginx/conf.d
- ./nginx-docker/logs:/var/log/nginx
- ./nginx-docker/ssl:/etc/nginx/ssl
restart: unless-stopped
然后运行:
docker-compose up -d
nginx -t
测试配置语法是否正确通过以上步骤,您可以在 Docker 中成功安装并配置带有挂载的 Nginx 服务。