Docker-compose

目录

如何安装Docker-compose

启动命令

本文案例

如果设置延迟启动控制执行顺序?depends_on

参数说明:

心跳检测、心跳检测模板

如何设置时区?

如何实现相互通信?

如何设置自定义网段?

如何设置静态IP?

如何设置连接外部依赖?

1、使用已经存在的网段

2、将MySQL容器加入到 lting-scrm-net网段中

3、在Nacos容器中连接Mysql容器

external_links使用方法


如何安装Docker-compose

#1、创建docker-compose安装目录
    mkdir /apps/compose
    cd /apps/compose

#2、下载Linux版本 
    sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /apps/compose/docker-compose

# 3、赋权:
    sudo chmod +x /apps/compose/docker-compose

# 4、创建软连接:
    ln -sf /apps/compose/docker-compose /usr/bin/docker-compose

#5、查看版本:
    docker-compose -v

启动命令

# 启动全部
    docker-compose up

# 启动外部独立yml?
    docker-compose -f xxx.yml up
        ### 如果我们要启动的文件名字不是docker-compose.yml,而是比如“standalone-mysql.yaml”、“standalone-nacos.yaml”之类文件,可以使用此命令启动

# 启动部分容器
    docker-compose up SERVICE_NAME
      ### 一个yml文件中有多个容器时,可以使用此命令启动,比如:
      ### docker-compose up nacos   ### nacos依赖db,所以db也会启动;
      ### docker-compose up db      ### 单独启动db;

# 以依赖关系顺序停止服务
     docker-compose stop       
        ### docker-compose up nacos ### nacos依赖db,所以db会在nacos前面停止

### 后台启动:添加“-d”即可
    docker-compose up -d
    

# 卸载
    直接删除docker-compose安装目录即可

本文案例

MySQL+Nacos+Seata,依赖关系如下:

  • 其中mysql独立,不要依赖;
  • Nacos依赖MySQL;
  • Seata依赖MySQL、Nacos

三者都是放在docker-compose.yml文件中。各个版本如下:

[root@iZbp222227zw5Z ~]# docker-compose --version
Docker Compose version v2.6.1

[root@iZb2222222zw5Z ~]# docker --version
Docker version 20.10.17, build 100c701

docker-compose.yml文件版本:version '3.9'

如果设置延迟启动控制执行顺序?depends_on

depends_on:指定依赖的执行顺序

# depends_on:在version '3.9'版本中新增condition心跳检测,可以控制以来服务是否启动成功
### 写法一:无法判断该服务是否成功启动 

######缺点:--- 比如nacos和mysql,mysql启动时会初始化数据,如果我们使用此种方法时,在nacos启动时mysql的初始化数据可能未执行完毕,导致nacos会报错:Caused by: java.lang.IllegalStateException: No DataSource set....


version: "3.9"
services:
  db:
    image: mysql:8.0.21
  nacos:
    depends_on:
      - db


### 写法二:
version: "3"
services:
  db:
    image: mysql:8.0.21
    healthcheck:
        ......
  nacos:
    depends_on:
      db:
        condition: service_healthy

参数说明:

condition:有三个值。分别是:

  • service_sarted:该服务无论初始化完成没都会启动本服务, 能使用“docker ps” 查看---与“写法一”作用类似;
  • service_healthy:心跳检测,如果该服务启动成功后----可能还没有初始化完成,本服务不会成功启动---即只创建不启动。不能使用“docker ps”查看,但是可以使用“docker ps -a”查看 -----等待时间久;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值