华为云 ECS 入门实战:使用 Docker 快速部署 Nginx 静态站点
一、背景与目标
最近在学习云服务器和容器化部署,因此选择华为云弹性云服务器 ECS 作为实验环境,目标是在 ECS 上使用 Docker 快速运行一个 Nginx 静态站点,并通过公网 IP 访问。
本次实践环境如下:
云平台:华为云
产品:弹性云服务器 ECS
操作系统:Ubuntu 22.04
规格:2 vCPU / 4 GB
网络:已绑定弹性公网 IP
容器:Docker
Web 服务:Nginx
二、创建并连接 ECS
登录华为云控制台后,进入“弹性云服务器 ECS”页面,点击创建云服务器。镜像选择 Ubuntu 22.04,规格根据个人需求选择。创建时需要注意安全组配置,至少放通以下端口:
22:用于 SSH 远程连接
80:用于 HTTP 访问
创建完成后,使用 SSH 连接服务器:
BASH
ssh root@<ECS公网IP>
如果使用 ubuntu 用户,则命令类似:
BASH
ssh ubuntu@<ECS公网IP>
三、安装 Docker
连接服务器后,先更新软件源:
BASH
sudo apt update
安装 Docker:
BASH
sudo apt install -y docker.io
启动 Docker 并设置开机自启:
BASH
sudo systemctl enable docker
sudo systemctl start docker
检查 Docker 是否安装成功:
BASH
docker --version
如果能看到 Docker 版本信息,说明安装完成。
四、使用 Docker 部署 Nginx
拉取 Nginx 官方镜像:
BASH
sudo docker pull nginx:latest
启动 Nginx 容器,将宿主机 80 端口映射到容器 80 端口:
BASH
sudo docker run -d --name my-nginx -p 80:80 nginx:latest
查看容器运行状态:
BASH
sudo docker ps
如果状态显示为 Up,说明容器已经正常运行。
五、配置安全组
如果浏览器无法访问,通常需要检查华为云安全组是否放通 80 端口。
进入 ECS 控制台,找到对应实例的安全组,添加入方向规则:
协议端口:TCP 80
源地址:0.0.0.0/0
动作:允许
测试环境可以这样配置,生产环境建议根据实际需求限制源 IP。
六、验证访问
在浏览器中输入:
TEXT
http://<ECS公网IP>
如果看到 Nginx 默认欢迎页面,说明部署成功。
也可以在服务器内部使用 curl 验证:
BASH
curl http://localhost
正常情况下会返回 Nginx 的 HTML 页面内容。
七、自定义静态页面
如果想部署自己的页面,可以创建目录和 HTML 文件:
BASH
mkdir -p /home/ubuntu/nginx-html
cat > /home/ubuntu/nginx-html/index.html <<'EOF'
<h1>Hello Huawei Cloud ECS + Docker Nginx</h1>
<p>This page is deployed on Huawei Cloud ECS.</p>
EOF
停止并删除旧容器:
BASH
sudo docker rm -f my-nginx
重新启动容器并挂载自定义页面:
BASH
sudo docker run -d --name my-nginx \
-p 80:80 \
-v /home/ubuntu/nginx-html:/usr/share/nginx/html:ro \
nginx:latest
再次访问公网 IP,就能看到自定义页面。
八、常见问题
浏览器无法访问
检查安全组是否放通 80 端口,服务器防火墙是否限制,容器是否正常运行。
80 端口被占用
可以执行:
BASH
sudo ss -tlnp | grep :80
找到占用端口的进程后进行处理。
Docker 权限问题
如果不想每次都输入 sudo,可以将当前用户加入 docker 组:
BASH
sudo usermod -aG docker $USER
然后重新登录服务器生效。
九、总结
通过本次实践,我完成了在华为云 ECS 上安装 Docker、部署 Nginx、配置安全组以及挂载自定义静态页面的过程。整体流程比较清晰,ECS 与 Docker 结合可以快速搭建测试环境。后续还可以继续尝试绑定域名、配置 HTTPS、接入对象存储 OBS 或 CDN,进一步提升站点可用性和访问速度。
- 点赞
- 收藏
- 关注作者
评论(0)