Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version
指定运行的镜像名称
# 运行的是mysql5.7的镜像image: mysql:5.7配置容器名称
# 容器名称为mysqlcontainer_name: mysql指定宿主机和容器的端口映射(HOST:CONTAINER)
# 将宿主机的3306端口映射到容器的3306端口ports:- 3306:3306将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)
# 将外部文件挂载到myql容器中volumes:- /mydata/mysql/log:/var/log/mysql- /mydata/mysql/data:/var/lib/mysql- /mydata/mysql/conf:/etc/mysql配置环境变量
# 设置mysqlroot帐号密码的环境变量environment:- MYSQL_ROOT_PASSWORD=root连接其他容器的服务(SERVICE:ALIAS)
# 可以以database为域名访问服务名称为db的容器links:- db:database# -d表示在后台运行docker-compose up -ddocker-compose stopdocker-compose psDocker 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服务并设置部分。

先将docker-compose.yml上传至Linux服务器,再在当前目录下运行如下命令:
docker-compose up -d
访问接口文档地址http://192.168.3.101:8080/swagger-ui.html:
