Docker Compose 快速部署 Web 项目实战笔记
【摘要】 现在很多小项目都用 Docker Compose 来编排服务,相比单独 docker run 命令,它更方便管理配置、挂载目录、启停项目,不用记一长串参数。这次在华为云 ECS 上面实操部署,记录完整流程和踩坑点,给新手参考。一、环境准备服务器:华为云 ECS CentOS 系统 需要提前装好 docker 和 docker composeyum install docker -ysyste...
现在很多小项目都用 Docker Compose 来编排服务,相比单独 docker run 命令,它更方便管理配置、挂载目录、启停项目,不用记一长串参数。这次在华为云 ECS 上面实操部署,记录完整流程和踩坑点,给新手参考。
一、环境准备
服务器:华为云 ECS CentOS 系统 需要提前装好 docker 和 docker compose
yum install docker -y
systemctl start docker
systemctl enable docker
二、编写 docker-compose.yml
在项目目录新建 docker-compose.yml,示例:
version: '3'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
restart: always
- ports:宿主机端口:容器内端口
- volumes:挂载本地静态页面目录到容器,改代码不用重新打包镜像
- restart: always 开机自动重启服务
三、启动和管理命令
启动项目(在 yml 文件同级目录执行)
docker compose up -d
查看日志,排查启动报错
docker compose logs -f
停止项目
docker compose down
重启项目
docker compose restart
四、必做:安全组放行端口
华为云 ECS 控制台找到实例安全组,添加入方向规则,放行 8080 端口。
很多新手启动容器成功,但是外网打不开,基本都是安全组没开放端口。
五、常见问题整理
- 端口占用报错 报错提示 port is already allocated,说明宿主机这个端口被别的程序占用。修改 ports 里前面的宿主机端口即可。
- 容器启动后立刻退出 查看 logs 日志,大概率是镜像内程序配置错误、监听地址写死 127.0.0.1,要改成 0.0.0.0。
- 挂载文件页面不更新 检查本地文件路径是否正确,目录权限不足会出现 403,执行
chmod -R 755 ./html。 - docker compose 命令找不到 新版 docker 内置 compose,用
docker compose(空格),老版本是横杠docker-compose,不要混用。
六、小结
Docker Compose 适合单主机部署小型 Web、后台工具、演示项目,配置写在 yml 里面,换服务器直接拷贝文件就能一键拉起,方便迁移和备份。后续我也打算用这套方式部署小游戏、自动化脚本配套的后台页面。
【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,
举报邮箱:cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)