SpringBoot实战电商项目mall(20k+star)地址: https://github.com/macrozheng/mall
Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你能够用YAML文件来配置你的应用服务,而后使用一个命令,你就能够部署你配置的全部服务了。html
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
指定运行的镜像名称mysql
# 运行的是mysql5.7的镜像 image: mysql:5.7
配置容器名称git
# 容器名称为mysql container_name: mysql
指定宿主机和容器的端口映射(HOST:CONTAINER)github
# 将宿主机的3306端口映射到容器的3306端口 ports: - 3306:3306
将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)sql
# 将外部文件挂载到myql容器中 volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql
配置环境变量docker
# 设置mysqlroot账号密码的环境变量 environment: - MYSQL_ROOT_PASSWORD=root
链接其余容器的服务(SERVICE:ALIAS)shell
# 能够以database为域名访问服务名称为db的容器 links: - db:database
# -d表示在后台运行 docker-compose up -d
docker-compose stop
docker-compose ps
Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义全部服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间能够以服务名称为域名进行访问,好比在mall-tiny-docker-compose服务中能够经过jdbc:mysql://db:3306这个地址来访问db这个mysql服务。
version: '3' services: # 指定服务名称 db: # 指定服务使用的镜像 image: mysql:5.7 # 指定容器名称 container_name: mysql # 指定服务运行的端口 ports: - 3306:3306 # 指定容器中须要挂载的文件 volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql # 指定容器的环境变量 environment: - MYSQL_ROOT_PASSWORD=root # 指定服务名称 mall-tiny-docker-compose: # 指定服务使用的镜像 image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT # 指定容器名称 container_name: mall-tiny-docker-compose # 指定服务运行的端口 ports: - 8080:8080 # 指定容器中须要挂载的文件 volumes: - /etc/localtime:/etc/localtime - /mydata/app/mall-tiny-docker-compose/logs:/var/logs
注意:若是遇到mall-tiny-docker-compose服务没法链接到mysql,须要在mysql中创建mall数据库,同时导入mall.sql脚本。具体参考使用Dockerfile为SpringBoot应用构建Docker镜像中的运行mysql服务并设置部分。数据库
注意:构建有问题的能够参考使用Maven插件为SpringBoot应用构建Docker镜像服务器
先将docker-compose.yml上传至Linux服务器,再在当前目录下运行以下命令:app
docker-compose up -d
访问接口文档地址http://192.168.3.101:8080/swagger-ui.html:
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-docker-compose
mall项目全套学习教程连载中,关注公众号第一时间获取。