下面以腾讯云轻量应用服务器(Lighthouse)为例,说明使用 Docker 部署 Nginx 的完整步骤。假设你已:
- 拥有轻量服务器并可以 SSH 登录
- 系统为 Ubuntu / Debian / CentOS 等常见 Linux 发行版
一、登录服务器
ssh root@<你的服务器IP>
# 或使用你的用户名
ssh <user>@<你的服务器IP>
二、安装 Docker(以 Ubuntu/Debian 为例)
1. 更新软件包
sudo apt update && sudo apt upgrade -y
2. 安装依赖
sudo apt install -y
ca-certificates
curl
gnupg
lsb-release
3. 添加 Docker 官方 GPG 密钥和仓库
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker
6. 验证安装
docker --version
docker run hello-world
如果看到 Hello from Docker! 表示安装成功。
若使用的是 CentOS,可用
yum或dnf按 Docker 官方文档安装,逻辑类似。
三、快速运行一个 Nginx 容器
1. 拉取镜像
docker pull nginx:latest
2. 启动容器(简单版)
docker run -d
--name my-nginx
-p 80:80
nginx:latest
说明:
-d:后台运行--name my-nginx:容器名称-p 80:80:将宿主机的 80 端口映射到容器的 80 端口nginx:latest:使用的镜像
3. 测试访问
在本地浏览器访问:
http://<你的服务器IP>
如果看到 “Welcome to nginx!” 页面,说明部署成功。
四、自定义 Nginx 配置(挂载本地配置文件)
如果你有自己的 nginx.conf 或需要自定义站点配置,可以:
1. 创建本地目录和配置文件
mkdir -p ~/nginx/conf
vim ~/nginx/nginx.conf
示例 nginx.conf(简化版):
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name _;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
如需放置静态文件:
mkdir -p ~/nginx/html
echo "<h1>Hello from custom Nginx</h1>" > ~/nginx/html/index.html
2. 启动容器并挂载配置与网页目录
docker run -d
--name my-nginx-custom
-p 8080:80
-v ~/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
-v ~/nginx/html:/usr/share/nginx/html:ro
nginx:latest
访问:
http://<你的服务器IP>:8080
五、使用 Docker Compose 管理(可选但推荐)
1. 安装 docker-compose(如果未安装)
Docker Desktop 自带,CLI 版本可单独安装:
sudo apt install -y docker-compose-plugin
2. 编写 docker-compose.yml
在项目目录(如 ~/nginx-docker)下:
mkdir -p ~/nginx-docker
cd ~/nginx-docker
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
nginx:
image: nginx:latest
container_name: my-nginx
ports:
- "80:80"
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf:ro
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
EOF
并确保有对应的 conf/nginx.conf 和 html/index.html。
3. 启动服务
docker compose up -d
查看状态:
docker compose ps
停止/重启:
docker compose down # 停止并删除容器
docker compose up -d # 重新拉起
六、腾讯云轻量服务器安全组配置
在腾讯云控制台:
- 进入「轻量应用服务器」 → 选择你的实例 → 「防火墙」或「安全组」。
- 确保放行以下端口(根据你上面的映射):
- 80(HTTP)
- 如有 HTTPS,需开放 443
- 如有其他端口(如 8080),也要放行
- 保存规则。
七、常见问题排查
-
无法访问页面
- 检查安全组是否放行对应端口
- 检查容器是否运行:
docker ps - 检查端口映射是否正确:
docker port my-nginx - 检查 Nginx 日志:
docker logs my-nginx
-
修改配置后不生效
- 确认挂载路径正确,且权限足够
- 重载容器内 Nginx:
docker exec my-nginx nginx -s reload
-
容器退出
- 查看日志:
docker logs my-nginx - 检查
nginx.conf语法:docker exec my-nginx nginx -t
- 查看日志:
如果你告诉我:
- 当前操作系统(Ubuntu/CentOS 等)
- 是否需要 HTTPS(Let’s Encrypt)
- 是否有现有网站文件要托管
我可以给出更贴合你场景的完整命令和 docker-compose.yml 模板。
云服务器