一、定义

Docker Compose是一个用来定义和运行复杂应用的Docker工具
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

二、步骤:

①编写Dockerfile定义各个微服务应用并构建出对应的镜像文件

例如:

docker 下部署多个redis不影响吗 docker部署多个jar包_jar

FROM openjdk:8
#将jar包添加到容器中并更名为app.jar
ADD *.jar app.jar
#运行jar包
ENTRYPOINT ["java", "-Xms128m", "-Xmx128m", "-Dspring.profiles.active=dev", "-jar", "/app.jar"]
#暴露6001端口作为微服务
EXPOSE 19012

②使用 docker-compose.yml 定义一个完整的业务单元,安排好整体应用中的各个容器服务

方式一

:此种写法需要提前构建好镜像,在/srm/app/sup目录下执行docker build -t isrm-sup .命令构建好镜像

docker 下部署多个redis不影响吗 docker部署多个jar包_运维_02

version: '3.0'
services:
  supService:  #服务名:随便命名
    restart: always #docker服务重启时,容器也启动
    image: isrm-sup  #指定自定义构建好的镜像
    container_name: sup #生成的容器名称
    ports:
      - "19012:19012" # 端口映射
    volumes:
      - /srm/application/back/logs:/srm/application/back/logs # 目录挂载

方式二:此种写法不需要提前构建镜像,执行docker-compose up时会自动构建镜像

version: '3.0'
services:
  supService:
    restart: always
    build: #构建自定义镜像
       context: ./sup/  #dockerfile文件所在目录
       dockerfile: Dockerfile  #dockerfile文件名称
    image: isrm-sup #生成的镜像名称
    container_name: sup #生成的容器名称
    ports:
      - "19012:19012" #端口映射
    volumes:
      - /srm/application/back/logs:/srm/application/back/logs  #目录挂载

③最后,执行 docker-compose up(docker-compose up -d:后台启动) 命令来启动并运行整个应用程序,完整一键部署

三、常用命令:

功能

命令

查看帮助

docker-compose -h

启动所有docker-compose服务

docker-compose up

停止并删除容器、网络、卷、镜像

docker-compose down

查看容器输出日志

docker-compose logs yml里面的服务id

检查配置

docker-compose config

检查配置,有问题才有输出

docker-compose config -q

重启服务

docker-compose restart

启动服务

docker-compose start

停止服务

docker-compose stop

进入容器实例内部

docker-compose exec yml里面的服务id

进入容器实例内部

docker-compose exec docker-compose.yml文件中写的服务id/bin/bash

展示当前docker-compose编排过的运行的所有容器

docker-compose ps

展示当前docker-compose编排过的容器进程

docker-compose top

删除镜像

docker-compose down --rmi all

启动所有docker-compose服务并后台运行

docker-compose up -d