Docker Compose 有时会感觉像一个谜题。你调整端口以适应不同环境,如 staging 和 production,管理那些只偶尔需要用到的服务,当配置发生变化时,你又会陷入“这为什么会出问题”的循环。这确实很让人头疼。
但是如果你能的话……
- 无需编辑文件即可在不同环境间切换设置,
- 只启动当前需要的服务,
- 在部署前预览更改吗?
这里有5个鲜为人用的Docker Compose功能,可以解决上述问题。减少阻力,增加流畅。让我们一起成为Docker Compose大师!:D
是否厌烦了每次都要修改你的docker-compose.yml文件?试试变量替换功能:
服务配置:
```yaml
web服务:
镜像: nginx
端口映射:
- "${PORT}:80"
进入全屏 退出全屏
设置 `PORT=8080` 环境变量,搞定!这就对了!配置就自动调整好了,就这样。
## 2\. 个人简介
并非所有服务都需要全天候运行。你可以通过配置文件来选择服务。
服务定义:
services:
web:
image: nginx
profiles:
- 配置属性: web
db:
image: postgres
profiles:
- 配置属性: db
进入全屏/退出全屏
只需开启你需要的服务即可:
docker-compose --profile web up
全屏(点击进入/退出)
当你有很多服务要启动时,使用 `docker compose up` 命令要比单独定义每个服务更有趣。
## 3. 扩展部分
为什么不试试扩展呢?这里教你怎么做:
服务:
通用:
镜像: nginx
注:此配置用于定义通用服务的镜像。
点全屏 关闭全屏
然后在你的 `docker-compose.yml` 配置文件中
services:
web:
extends:
file: base.yml
service: common
ports:
- "80:80"
全屏查看 退出全屏
还记得 DRY(不要重复自己)吗?原来这也适用于 Docker Compose,还真是挺有用的呢 :D
## 4. 组合 compose 文件
像调制鸡尾酒一样(或者如果你已经是个Docker巫师,那就调制一种魔药一样),混合不同的Docker Compose配置文件:
services:
web:
# 这里定义了 web 服务的 Docker 配置,使用 nginx 作为镜像。
image: nginx
全屏模式,退出全屏
加点乐趣:
services:
web:
# Web服务的端口映射
ports:
- "8080:80"
点击全屏进入,然后退出全屏
运行 `docker-compose up` (启动容器),或者根据特定需求混合使用:
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
运行生成环境的Docker容器(启动生产环境的Docker容器)。
全屏模式 退出全屏
## 5\. 干运转模式.
在开始更改之前,先以模拟模式检查一下生产问题。
运行 `docker-compose --dry-run up` 命令
docker-compose --dry-run up
进入全屏 退出全屏
这让你可以预览到 Docker Compose 将会执行的操作,而不真正执行它们。试试吧!
此处省略
这些 Docker Compose 的小技巧是你的绝招,能让你的容器管理变得稍微更轻松。试试它们,看看你的工作流程如何转变!
希望你今天学到新东西了!在下面留言告诉我你的想法哦 :)
好了,
Jonas,Slipane联合创始人之一,[Slipane,最简单的方法来部署Docker容器](https://sliplane.io?utm_source=docker-compose-tricks)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦