Docker Compose

概述

    Compose在一台宿主机器上,编排Docker。

     Swarm可以在多台机器上,编排Docker。

     Compose主要是编写docker-compose.yml对服务(容器)进行管理(构建、启动、关闭、重启等)。

启动顺序的控制

     1、depends_on 解决启动服务启动的顺序

    2、如果一个服务A的启动时间较长,依赖A的服务B:在启动的时候(entrypoint),用脚步wait-it-for判断服务A启动了,才启动自身服务

version: "3"

services:

  mysql:

    image: mysql:5.6

    ports:

      - "3306:3306"

    environment:

      - MYSQL_ROOT_PASSWORD=jgyw@123

      - MYSQL_USER=cs2

      - MYSQL_PASS=cs2123

    volumes:

      - ./db/mysql:/var/lib/mysql

      - ./db/init:/docker-entrypoint-initdb.d/

  cs2_serv:

    image: cs2_serv:v1

    ports:

      - "81:81"

    environment:

      - SERV_PORT=81

      - MYSQL_IP=mysql

      - MYSQL_PORT=3306

      - DB_USERNAME=root

      - DB_PASSWORD=jgyw@123

    links:

      - mysql

    volumes:

      - ./wait-for-it.sh:/wait-for-it.sh

    entrypoint: "/wait-for-it.sh -t 0 mysql:3306 -- "

    command:

      - /bin/sh

      - -c

      - |

        sleep 10

        java -Djava.security.egd=file:/dev/./urandom -jar /app.jar

    下面这句话的意思是:mysql启动后,才执行command的命令。

    entrypoint: "/wait-for-it.sh -t 0 mysql:3306 -- "

    command:

      - /bin/sh

      - -c

      - |

        sleep 10

        java -Djava.security.egd=file:/dev/./urandom -jar /app.jar

    wait-for-it.sh的脚本,参见gitHub,

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容