在 Docker 上部署 Nginx 是一个快速且标准化的过程,以下是详细步骤和说明:
确保系统已安装 Docker:
# 检查Docker版本(确认是否安装)
docker --version
# 若未安装,根据系统选择命令:
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker.io
# CentOS
sudo yum install docker
sudo systemctl start docker
从 Docker Hub 获取最新版 Nginx 镜像:
docker pull nginx:latest
docker run --name my-nginx -p 80:80 -d nginx
--name my-nginx
:容器命名为 my-nginx
。-p 80:80
:将宿主机的 80 端口映射到容器的 80 端口。-d
:后台运行容器。访问 http://localhost
即可看到 Nginx 欢迎页。
mkdir -p ~/nginx-docker/{conf,html,logs}
# 启动临时容器复制默认配置
docker run --name tmp-nginx -d nginx
docker cp tmp-nginx:/etc/nginx/nginx.conf ~/nginx-docker/conf/
docker cp tmp-nginx:/etc/nginx/conf.d ~/nginx-docker/conf/
docker rm -f tmp-nginx
docker run --name my-nginx \
-p 80:80 \
-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 \
-d nginx
-v
:挂载宿主机目录到容器内,实现配置持久化。docker ps -a | grep my-nginx
docker logs my-nginx # 查看日志
docker restart my-nginx
docker stop my-nginx
docker exec -it my-nginx /bin/bash
docker rm -f my-nginx
创建 docker-compose.yml
文件:
version: '3'
services:
nginx:
image: nginx:latest
container_name: my-nginx
ports:
- "80:80"
- "443:443"
volumes:
- ~/nginx-docker/html:/usr/share/nginx/html
- ~/nginx-docker/conf:/etc/nginx
- ~/nginx-docker/logs:/var/log/nginx
restart: always
启动服务:
docker-compose up -d
chmod -R 755 ~/nginx-docker
。docker logs my-nginx
查看错误日志。通过以上步骤,你可以灵活地在 Docker 中部署 Nginx,并根据需求自定义配置。Docker 的隔离性和便携性使得 Nginx 的部署和管理更加高效。