docker pull nginx
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
restart: always
privileged: true
#!/bin/bash
mkdir -p nginx/logs nginx/html nginx/conf
docker run --name nginx-temp -d nginx:latest
docker cp nginx-temp:/etc/nginx/nginx.conf ./nginx/
docker cp nginx-temp:/etc/nginx/conf.d/default.conf ./nginx/conf/
docker cp nginx-temp:/usr/share/nginx/html/ ./nginx/
docker stop nginx-temp
docker rm nginx-temp
chmod -R 755 nginx
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
- ./nginx/html:/usr/share/nginx/html
- ./nginx/conf:/etc/nginx/conf.d
networks:
- nginx-network
restart: always
privileged: true
networks:
nginx-network:
driver: bridge
name: nginx-network
EOF
docker-compose up -d
- 创建必要的目录结构
- 启动一个临时的 Nginx 容器
- 从临时容器中复制默认配置文件到主机
- 删除临时容器
- 设置正确的权限
- 更新 docker-compose.yml 文件
- 启动正式的 Nginx 容器
chmod +x init-nginx.sh
./init-nginx.sh