Docker Compose模板大全:从入门到实战的完整指南
为什么你需要一份Docker Compose模板大全
对于服务器运维新手来说,手动配置容器启动参数很容易漏掉端口映射、数据卷挂载或环境变量,导致服务跑不起来。Docker Compose模板可以把这些配置写在一个 docker-compose.yml 文件里,一条命令搞定整个服务栈。
本教程从零开始,带你使用Docker Compose模板大全快速部署高频服务,并学会自定义调整。
前置准备:安装 Docker 和 Compose
确保你的服务器已经安装 Docker 和 Docker Compose。
以下适用于 CentOS 7+ / Ubuntu 20.04+:
- 安装 Docker(若未安装):
curl -fsSL https://get.docker.com | bash
sudo systemctl enable --now docker- 安装 Docker Compose(若版本低于
2.x):
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose- 验证安装:运行
docker --version和docker-compose --version应看到版本号。
核心模板库:常用服务的一键部署
以下模板均经过测试,复制到服务器新建目录下(如 ~/services/nginx)的 docker-compose.yml 文件即可。
1. Nginx 静态站点
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: always
使用 docker-compose up -d 启动,将静态文件放入当前目录的 html 文件夹即可访问。
2. MySQL 8.0 数据库
version: '3.8'
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: my_root_pwd
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: user_pwd
ports:
- "3306:3306"
volumes:
- ./mysql_data:/var/lib/mysql
restart: always
启动后可用 mysql -h 服务器IP -u user -p 远程连接。注意:首次启动会初始化数据,建议先关闭防火墙或开放端口。
3. Redis 缓存
version: '3.8'
services:
redis:
image: redis:7-alpine
ports:
- "6379:6379"
command: redis-server --requirepass my_redis_password
volumes:
- ./redis_data:/data
restart: always
启动后通过 redis-cli -a my_redis_password 测试连接。
4. WordPress + MySQL 完整网站
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_pass
WORDPRESS_DB_NAME: wp_db
volumes:
- ./wp_data:/var/www/html
depends_on:
- db
restart: always
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wp_db
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass
volumes:
- ./db_data:/var/lib/mysql
restart: always
访问 http://IP:8080 即可安装 WordPress。
避坑指南:常见问题与解决方法
- 端口冲突:启动时报
port is already allocated,先运行docker ps查看占用端口的容器,或修改docker-compose.yml中ports映射的宿主机端口。 - 容器启动后立即退出:用
docker-compose logs查看日志,常见原因是数据卷权限问题(如 MySQL 数据目录无法写入)。添加user: "1000:1000"或修改目录权限。 - 环境变量未生效:检查
docker-compose.yml中environment的键值是否拼写正确,重启时推荐先docker-compose down再up -d。 - 模板版本兼容性:请确保 Docker Compose 版本 >= 1.27,否则部分语法不支持。升级 Compose 到最新版即可。
验证模板与后续调整
部署完成后,按以下步骤验证服务是否正常运行:
- 执行
docker-compose ps,确认所有容器状态为Up。 - 执行
docker-compose logs -f实时查看启动日志,无 ERROR 即正常。 - 通过浏览器或客户端连接服务(如访问 Nginx 默认页、连接 MySQL、测试 Redis 读写)。
- 如果想修改配置,编辑
docker-compose.yml后执行docker-compose down && docker-compose up -d重建容器。
建议将模板保存到 Git 仓库,方便后续复用。
如果你正在处理Docker Compose模板大全,可以按以上步骤挑选合适的模板先跑起来,遇到异常时优先回看避坑部分。
熟练后即可轻松组合多服务并自定义环境变量,实现快速部署。