docker compose使用

参考https://docs.docker.com/compose、https://www.jianshu.com/p/2703bc0439c8

docker-compose.yml内容如下

 

version: '3'
services:
  # java环境
  #jdk8:
  #  container_name: jdk8
  #  image: java:1.8
  #  restart: always
    #volumes:
    #  - /usr/java/jdk1.8.0_202/:???
  #mqtt中间件
  mqtt:
    container_name: mqtt
    image: eclipse-mosquitto
    restart: always
    expose:
      - "1883"
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./mosquitto:/mosquitto

  #mysql服务
  mysql:
    container_name: mysql
    image: mysql:5.7
    restart: always
    expose:
      - "3306"
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/data/:/var/lib/mysql/
      - ./mysql/conf/:/etc/mysql/mysql.conf.d/
    environment:
      - MYSQL_ROOT_PASSWORD=123456

  #tomcat服务
  tomcat:
    container_name: tomcat
    image: tomcat:9.0
    restart: always
    expose:
      - "8001"
    ports:
      - "8001:8080"
      - "8009:8009"
      - "8777:8777"
    volumes:
      - ./tomcat9/bin:/usr/local/tomcat/bin
      - ./tomcat9/conf:/usr/local/tomcat/conf
      - ./tomcat9/logs:/usr/local/tomcat/logs
      - ./tomcat9/webapps:/usr/local/tomcat/webapps
      - /usr/java/jdk1.8.0_202/:/usr/java/jdk1.8.0_202/
      - ./.bashrc:/root/.bashrc
    #设置java home没用欸
    environment:
      - JAVA_HOME=/usr/java/jdk1.8.0_202/
   #   - JRE_HOME=${JAVA_HOME}/jre
   #   - CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
   #   - PATH=${JAVA_HOME}/bin:$PATH
    depends_on:
   #links:
      - mysql
      - mqtt

1.注意tomcat容器内部连接mysql、mqtt时,不能使用127.0.0.1(因为不同容器网络隔离了),要直接用depends_on里面的名称(别名)

2.各个容器如果要按顺序启动,可使用wait-for-it(参考https://www.cnblogs.com/wangmo/p/13042925.html)

 

启动相关命令如下

#创建并运行容器,-d 表示后台执行(首次运行可以docker-compose,可以看到运行日志,确定没问题了再-d)
docker-compose up -d

#停止
docker-compose stop

#其他命令详见docker-compose --help

 查看运行情况(主要是 mysql、mqtt、tomcat)

最终形成的目录如下

 

 

 

posted @ 2022-04-26 17:26  huangyn  阅读(48)  评论(0)    收藏  举报