Docker Compose 实战:华为云 ECS 一键管理 Web 服务,告别冗长 run 命令
【摘要】 之前一直用 docker run 敲一长串命令部署服务,每次删容器、重新部署都要反复复制参数,很容易写错端口、挂载目录。接触 Docker Compose 之后,把配置写到 yml 文件里,一条命令就能启停项目,方便很多,给大家分享在华为云 ECS 上的实操经验。一、环境说明服务器:华为云 ECS CentOS7/8 已提前装好 Docker + Docker Compose 适合:Web ...
之前一直用 docker run 敲一长串命令部署服务,每次删容器、重新部署都要反复复制参数,很容易写错端口、挂载目录。接触 Docker Compose 之后,把配置写到 yml 文件里,一条命令就能启停项目,方便很多,给大家分享在华为云 ECS 上的实操经验。
一、环境说明
服务器:华为云 ECS CentOS7/8 已提前装好 Docker + Docker Compose 适合:Web 面板、静态服务、小型业务容器批量管理
二、docker-compose.yml 示例(以静态网页服务举例)
新建项目文件夹,比如 /opt/web-demo,进入目录创建 docker-compose.yml
version: "3.8"
services:
web:
image: nginx:alpine
container_name: demo-web
restart: always
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
- restart: always 容器意外退出自动重启
- volumes 本地目录和容器目录挂载,改文件不用重建镜像
- ports 宿主机端口:容器内部端口
三、常用核心命令
# 启动服务(后台运行)
docker compose up -d
# 查看运行日志
docker compose logs -f
# 停止服务,保留容器
docker compose stop
# 停止并删除容器(镜像、挂载数据不会删掉)
docker compose down
# 修改yml配置后,重新加载生效
docker compose up -d
四、华为云 ECS 必做配置
- 安全组入方向放行上面用到的端口,本例是 8080
- 系统防火墙放行端口,或者调试时临时关闭
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
- 镜像拉取慢问题:配置国内 Docker 镜像加速器,避免连接重置、超时重试
五、踩坑记录
- yml 文件缩进非常严格,必须用空格,不能用 Tab,缩进错直接启动失败
- 端口被占用:先看宿主机端口有没有别的程序在用,换端口或者停掉原有服务
- 挂载目录权限异常,页面 403:给本地目录授权
chmod -R 755 ./html - 不要频繁用 docker run 和 compose 混用管理同一个容器,容易命名冲突
六、总结
Docker Compose 最大优势是配置可留存、可复用。以后换服务器迁移项目,只需要把 yml 文件和挂载的资源文件夹拷贝过去,一条 docker compose up -d 就能恢复服务,非常适合在华为云 ECS 上做多个轻量服务的长期维护。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)