Docker Compose

1、概念介绍

Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

安装部署
# 安装Compose
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 赋予docker-compose可执行权限
chmod +x /usr/local/bin/docker-compose

# 查看docker-compse版本
docker-compose -version
使用流程

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

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

最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线。

常用命令

2、编排服务
创建微服务镜像

使用Dockerfile文件生成微服务镜像

FROM openjdk:8-oracle
MAINTAINER lemon

# 在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp
VOLUME /tmp

# 将jar包添加到容器中,并命名为 springboot_docker.jar
ADD docker_boot-1.0-SNAPSHOT.jar /springboot_docker.jar
# 运行jar包
RUN bash -c 'touch /springboot_docker.jar'
ENTRYPOINT ["java", "-jar", "/springboot_docker.jar"]

# SpringBoot项目配置的端口号为6001,需要将6001暴露出去
EXPOSE 6001
docker-compose.yml 文件
# docker-compose文件版本号
version: "3"

# 配置各个容器服务
services:
  microService:
    image: springboot_docker:1.0
    container_name: ms01  # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名
    ports:
      - "6001:6001"
    volumes:
      - /app/microService:/data
    networks:
      - springboot_network
    depends_on:  # 配置该容器服务所依赖的容器服务
      - redis
      - mysql

  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks:
      - springboot_network
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db_springboot'
      MYSQL_USER: 'springboot'
      MYSQL_PASSWORD: 'springboot'
    ports:
      - "3306:3306"
    volumes:
      - /app/mysql/db:/var/lib/mysql
      - /app/mysql/conf/my.cnf:/etc/my.cnf
      - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - springboot_network
    command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问

networks:
  # 创建 springboot_network 网桥网络
  springboot_network:
# 检查docker-compose.yml 文件语法
docker-compose config -q

# 启动所有的容器实例
docker-compose up -d

# 关闭所有容器实例
docker-compose stop

相关推荐

  1. DockerCompose

    2024-02-06 01:14:02       38 阅读
  2. DockerCompose安装mysql及配置

    2024-02-06 01:14:02       39 阅读
  3. Centos7安装Docker和DockerCompose

    2024-02-06 01:14:02       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 01:14:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 01:14:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 01:14:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 01:14:02       18 阅读

热门阅读

  1. 《微信小程序开发从入门到实战》学习九十九

    2024-02-06 01:14:02       34 阅读
  2. C# Avalonia 11.0.6 绘图

    2024-02-06 01:14:02       29 阅读
  3. SQL的函数类型

    2024-02-06 01:14:02       35 阅读
  4. 【工具】使用asciidoctor-pdf将adoc文件转换成pdf

    2024-02-06 01:14:02       31 阅读
  5. linux使用docker安装rancher

    2024-02-06 01:14:02       27 阅读
  6. PyTorch的 torch.unsqueeze() 和 torch.squeeze()方法详解

    2024-02-06 01:14:02       23 阅读
  7. 2.5 作业

    2024-02-06 01:14:02       25 阅读
  8. P2SH地址嵌套SegWit脚本

    2024-02-06 01:14:02       30 阅读
  9. #vu3# element plus表格的序号字段

    2024-02-06 01:14:02       30 阅读