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)

最终形成的目录如下

浙公网安备 33010602011771号