使用Docker Compose部署SpringBoot应用

使用Docker Compose部署SpringBoot应用

原创: 梦想de星空 macrozheng 6月19日html

Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你能够用YAML文件来配置你的应用服务,而后使用一个命令,你就能够部署你配置的全部服务了。mysql

安装

下载Docker Compose:

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

img

使用Docker Compose的步骤

  • 使用Dockerfile定义应用程序环境,通常须要修改初始镜像行为时才须要使用;
  • 使用docker-compose.yml定义须要部署的应用程序服务,以便执行脚本一次性部署;
  • 使用docker-compose up命令将全部应用服务一次性部署起来。

docker-compose.yml经常使用命令

image

指定运行的镜像名称sql

# 运行的是mysql5.7的镜像image: mysql:5.7

container_name

配置容器名称docker

# 容器名称为mysqlcontainer_name: mysql

ports

指定宿主机和容器的端口映射(HOST:CONTAINER)数据库

# 将宿主机的3306端口映射到容器的3306端口ports:  - 3306:3306

volumes

将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)服务器

# 将外部文件挂载到myql容器中volumes:  - /mydata/mysql/log:/var/log/mysql  - /mydata/mysql/data:/var/lib/mysql  - /mydata/mysql/conf:/etc/mysql

environment

配置环境变量app

# 设置mysqlroot账号密码的环境变量environment:  - MYSQL_ROOT_PASSWORD=root

links

链接其余容器的服务(SERVICE:ALIAS)curl

# 能够以database为域名访问服务名称为db的容器links:  - db:database

Docker Compose经常使用命令

构建、建立、启动相关容器:

# -d表示在后台运行docker-compose up -d

中止全部相关容器:

docker-compose stop

列出全部容器信息:

docker-compose ps

使用Docker Compose 部署应用

编写docker-compose.yml文件

Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义全部服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间能够以服务名称为域名进行访问,好比在mall-tiny-docker-compose服务中能够经过jdbc:mysql://db:3306这个地址来访问db这个mysql服务。maven

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插件构建mall-tiny-docker-compose镜像

img

注意:构建有问题的能够参考使用Maven插件构建Docker镜像

运行Docker Compose命令启动全部服务

先将docker-compose.yml上传至Linux服务器,再在当前目录下运行以下命令:

docker-compose up -d

img

访问接口文档地址http://192.168.3.101:8080/swagger-ui.html:

img

相关文章
相关标签/搜索