Docker Compose

2019-07-30  本文已影响0人  陈超Terry的技术屋

概述

    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,

上一篇下一篇

猜你喜欢

热点阅读