走啊走
加油

使用Docker在腾讯云轻量服务器上部署Nginx的方法?

服务器价格表

下面以腾讯云轻量应用服务器(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.confroot 指向 /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 端口:

  1. 登录腾讯云控制台 → 轻量应用服务器 → 实例详情
  2. 找到“防火墙”或“安全组”设置
  3. 添加入方向规则:
    • 协议:TCP
    • 端口:80
    • 来源:0.0.0.0/0(或按需限制 IP)

保存后再次访问 http://<公网IP> 应正常。


八、常见问题排查

  1. 无法访问页面

    • 检查安全组是否开放 80 端口
    • 检查 docker ps 容器是否运行
    • 检查 docker logs nginx 是否有错误
    • 确认 docker run -p 80:80 端口映射正确
  2. Nginx 配置不生效

    • 确保挂载路径正确且权限可读
    • 修改 nginx.conf 后需要重启容器:
      docker restart nginx
  3. 容器被杀死或退出

    • 查看日志:docker logs nginx
    • 检查资源限制、配置语法错误等

如果你希望我根据你的具体系统版本(如 Ubuntu 22.04 / CentOS 7)或是否需要反向X_X、HTTPS、多域名等场景,给出更定制化的命令和配置文件模板,可以告诉我你的环境细节。