docker-compose中的links和depend_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: . depend_on: - db db: image: mysql
在上面的示例中,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: mysql networks: - mynet networks: mynet: driver: bridge
注意上面的配置中我们保留了 depends_on
,是因为 depends_on 是用来定义服务之间的依赖顺序的。
参考自:https://blog.csdn.net/eagle5063/article/details/131054281