docker-compose中links和depends_on关键字学习总结
整理在使用 docker-compose 管理多个依赖服务时, links 和 depends_on的作用与区别,及可优化的替代方案
links
link关键字用于在不同的容器之间创建网络链接。
它允许一个容器能够访问另一个容器的网络连接信息(如IP地址和端口)。
使用方法:在Docker Compose配置文件中,通过links关键字定义容器之间的链接关系。例如:
version: '3'
services:
web:
build: .
links:
- db
db:
image: postgres
在上面的示例中,web容器与db容器建立了链接,使得web容器可以通过db主机名访问到db容器。
注意事项
尽管link在早期版本的Docker中是一种常用的容器间通信方式,但在现代Docker版本中,建议使用用户自定义网络(User-defined networks)或者DNS解析等方法来进行容器间通信,而不是依赖link关键字。
Depends_on(依赖):
depends_on关键字用于定义服务之间的依赖关系。
它指示Docker Compose在启动服务时应该按照依赖关系的顺序来启动容器。
使用方法:在Docker Compose配置文件中,通过depends_on关键字指定服务之间的依赖关系。例如:
version: '3'
services:
web:
build: .
depends_on:
- db
db:
image: postgres
在上面的示例中,web服务依赖于db服务。当使用docker-compose up启动时,Docker Compose会首先启动db容器,然后再启动web容器。
注意事项
depends_on只关注服务之间的启动顺序,并不保证服务的可用性或健康状态。
因此,在使用depends_on时仍然需要在应用程序中实现适当的等待机制或健康检查,以确保依赖的服务已经准备好被使用。
links 优化
上面在介绍links的时候,新版本中建议使用自定义网络 来代替 links
优化后的配置如下:
version: '3'
services:
web:
build: .
depends_on:
- db
networks:
- mynet
db:
image: postgres
networks:
- mynet
networks:
mynet:
driver: bridge
注意上面的配置中我们保留了 depends_on ,是因为 depends_on 是用来定义服务之间的依赖顺序的。
如果觉得文章对你有用,请不吝点赞 和 关注个人公众号(搜索 全栈运维 或者 DailyJobOps)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)