version: "3.0"

services:
  tomcat01:  #服务名唯一
    container_name: tomcat01 #相当于--name
    image: tomcat:8.0-jre8
    ports:
      - 8082:8080
    volumes:
    #  - /tmp/apps:/usr/local/tomcat/webapps  #使用自定义的卷名
      - tomcatwebapps01:/usr/local/tomcat/webapps
    networks:  #代表当前服务使用哪个网络
      - hello

  tomcat02:  #服务名唯一
    container_name: tomcat02 #相当于--name
    image: tomcat:8.0-jre8
    ports:
      - 8083:8080
    volumes:
    #  - /tmp/apps:/usr/local/tomcat/webapps  #使用自定义的卷名
      - tomcatwebapps02:/usr/local/tomcat/webapps
    networks: #代表当前服务使用哪个网络
      - hello
  mysql:
    container_name: mysql
    image: mysql:5.7
    ports:
      - "3307:3306"
    volumes:
      - "mysqldata:/var/lib/mysql"
      - "mysqlconf:/etc/mysql"
    networks:
      - hello
    environment:
      - "MYSQL_ROOT_PASSWORD=root"

  redis:
     container_name: redis
     image: redis:5.0
     ports:
       - "6380:6379"
     volumes:
       - "redisdata:/data"
     networks:
       - "hello"
     command: "redis-server --appendonly yes"  #run 镜像之后用来覆盖容器内默认命令

volumes:     #声明服务自动创建的卷名
    tomcatwebapps01:  #声明指令的签名
      external:     #使用自定义的卷名
         true       #true确定使用指定的卷名 注意:一旦使用外部自定义的服务之前必须手动创建
    tomcatwebapps02:
    mysqldata:
    mysqlconf:
    redisdata:
networks: #定义服务用到的网桥
    hello: #定义服务用到的网络名称,默认创建的就是bridge
      external:
        true