首页 > 其他分享 >docker-compose中的links和depend_on关键字

docker-compose中的links和depend_on关键字

时间:2023-06-29 15:00:21浏览次数:39  
标签:容器 compose depend links web db depends docker Docker

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

 

标签:容器,compose,depend,links,web,db,depends,docker,Docker
From: https://www.cnblogs.com/shaoyishi/p/17514207.html

相关文章

  • Docker容器 如何修改容器时间,时区问题修改
    1.以root身份进入容器dockerexec-it-urootb3465e6bbc5b/bin/sh可以使用date查看时间2.在容器中创建文件mkdir-p /usr/share/zoneinfo/Asia3.回到宿主机,复制宿主机里的文件到容器中docker cp /usr/share/zoneinfo/Asia/Shanghai容器ID或容器名:/usr/share/zonei......
  • 不更改composer源文件的情况下重写compsoer类
    在工作中有时候会遇到原来用的composer包已经不能完全满足需求了,需要重新加入一些功能,这个时候我们可以通过重写composer包类来实现。1.排除的compsoer类,以下为例:"exclude-from-classmap":["vendor/vectorface/googleauthenticator/src/GoogleAuthenticator.php"......
  • docker-compose 部署java微服务项目
    1、准备条件:安装docker,安装docker-compose,docker安装可自行百度,docker-compose安装由于太慢,我这里提供两个版本:win和linux版本的百度网盘版,大家可根据需要自行下载:链接:https://pan.baidu.com/s/10W81TX6cWQqyi92xyeuZQQ提取码:2evg这里一linux系统为例:下载docker-compose-linux-......
  • Linux - Docker日志文件清理
    1.容器日志文件默认存放路径:/var/lib/docker,docker日志文件后缀是containerID+"-json.log",     查看各个日志文件大小:   1) ls-lh$(find/var/lib/docker/containers/-name*-json.log)       查询结果sample:  -rw-r-----1rootroot2......
  • Docker实战_Mysql数据卷挂载
    Docker实战_Mysql数据卷挂载搜索镜像dockersearchmysql:5.7下载镜像dockerpullmysql:5.7运行镜像dockerrun-d-p3306:3306\-v/opt/mysql/conf:/etc/mysql/conf.d\-v/opt/mysql/data:/var/lib/mysql\-eMYSQL_ROOT_PASSWORD=123456--namemy-mysqlmysql:......
  • Docker数据管理_数据卷容器
    Docker数据管理_数据卷容器Volume基本使用参数: create#创建数据卷 inspect#查看数据卷元数据 ls#查看数据卷列表 prune#删除所有未使用的卷 rm#删除数据卷创建一个自定义容器dockervolumecreateedc-tomcat-vol查看所有容器卷dockervolumels查看指定容器......
  • Docker数据管理_配置数据卷
    Docker数据管理_配置数据卷命令dockerrun-v宿主机目录(文件):容器内目录(文件)webapps注意事项目录必须是绝对路径如果目录不存在则会自动创建可以挂载多个数据卷示例给Tomcat服务器挂载/opt/webapps路径。dockerrun-d--namemytomcat-p8080:8080......
  • Docker数据管理_为什么使用数据卷
    Docker数据管理_为什么使用数据卷什么是容器数据卷Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(DataVolume)思考Docker容器删除后,在容器中产生的数据还在吗?Docker容器和外部机器可以直接交换文件吗?容器之间能进行数据交互?数据卷概念......
  • Docker 容器添加中文字体
    系统里有一个需要在图片上画中文的功能,在开发环境是ok的,一到线上Docker容器环境中文就不显示了,查了一些资料说是缺少中文字体,就在容器里安装中文字体。1.查看当前使用的系统语言:$echo$LANGen_US.UTF-8en_US.UTF-8是支持中文编码的,所以并不需要去安装中文编码的支持。......
  • docker部署指定版本的mysql client
    docker部署mysqlclientdockerpullmysql:8.0.31cat>>~/.bashrc<<'EOF'##--rm表示容器退出及销毁aliasmysql-cli="dockerrun-it--rmmysql:8.0.31mysql"EOFsource~/.bashrcmysql-cli-h123.123.123.123-P23306-uxxxxxxxx-pxx......