下面以腾讯云轻量应用服务器(Lighthouse)为例,说明用 Docker 部署 Nginx 的完整步骤。假设你已:
- 拥有腾讯云服务器(轻量应用服务器)
- 已开通 SSH 访问、能登录 root 或普通用户(需 sudo)
- 已安装 Docker(若未安装,后面会给出安装命令)
一、登录服务器并更新系统
ssh root@<你的公网IP>
# 或使用普通用户 + sudo
sudo apt-get update -y # Debian/Ubuntu
# CentOS/AlibabaOS 等可用:
# sudo yum update -y
二、安装 Docker(如未安装)
1. Ubuntu / Debian
# 安装依赖
sudo apt-get install -y
ca-certificates
curl
gnupg
lsb-release
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker
# 将当前用户加入 docker 组(可选,避免每次 sudo)
sudo usermod -aG docker $USER
# 重新登录或执行:newgrp docker
2. CentOS / Rocky / AlmaLinux
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
验证安装:
docker --version
docker run hello-world
三、拉取并运行 Nginx 容器
1. 拉取镜像
docker pull nginx:latest
2. 创建自定义配置目录(可选但推荐)
在服务器上创建一个目录用于存放自己的 nginx.conf 和站点文件:
mkdir -p ~/nginx/conf
mkdir -p ~/nginx/html
你可以把默认配置复制进去再修改:
docker run --rm nginx cat /etc/nginx/nginx.conf > ~/nginx/conf/nginx.conf
编辑配置文件(示例只改端口和根目录):
nano ~/nginx/conf/nginx.conf
例如,把监听端口改为 80(默认就是 80),并指定 root:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name _;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
如果你只是想快速测试,可以直接用官方默认配置,不写自定义 conf。
四、启动 Nginx 容器
方式 A:使用默认配置(最简单)
docker run -d
--name nginx
-p 80:80
nginx:latest
然后访问:
http://<你的公网IP>
看到 “Welcome to nginx!” 即成功。
方式 B:挂载自定义配置和网站目录
docker run -d
--name nginx
-p 80:80
-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro
-v ~/nginx/html:/usr/share/nginx/html:ro
nginx:latest
~/nginx/html放你的静态网页(如index.html)nginx.conf中root指向/usr/share/nginx/html
测试:
echo "<h1>Hello from Docker Nginx</h1>" > ~/nginx/html/index.html
刷新浏览器即可看到内容。
五、检查容器状态
docker ps
docker logs nginx
如果容器重启,可以查看日志排查问题。
六、设置开机自动启动
Docker 服务已设置开机自启后,容器本身也需要设置 restart 策略:
docker update --restart=always nginx
或者在 run 时加上 --restart=always:
docker run -d
--name nginx
--restart=always
-p 80:80
nginx:latest
七、腾讯云轻量服务器防火墙设置
轻量应用服务器通常自带“安全组”或“防火墙规则”,需要放行 80 端口:
- 登录腾讯云控制台 → 轻量应用服务器 → 实例详情
- 找到“防火墙”或“安全组”设置
- 添加入方向规则:
- 协议:TCP
- 端口:80
- 来源:0.0.0.0/0(或按需限制 IP)
保存后再次访问 http://<公网IP> 应正常。
八、常见问题排查
-
无法访问页面
- 检查安全组是否开放 80 端口
- 检查
docker ps容器是否运行 - 检查
docker logs nginx是否有错误 - 确认
docker run -p 80:80端口映射正确
-
Nginx 配置不生效
- 确保挂载路径正确且权限可读
- 修改
nginx.conf后需要重启容器:docker restart nginx
-
容器被杀死或退出
- 查看日志:
docker logs nginx - 检查资源限制、配置语法错误等
- 查看日志:
如果你希望我根据你的具体系统版本(如 Ubuntu 22.04 / CentOS 7)或是否需要反向X_X、HTTPS、多域名等场景,给出更定制化的命令和配置文件模板,可以告诉我你的环境细节。
CLOUD云计算