Docker进阶 - 11. Docker Compose 编排服务
创始人
2024-05-25 15:25:23
0

注:本文只对一些重要步骤和yml文件进行一些讲解,其他的具体程序没有记录。

目录

1. 原始的微服务工程编排(不使用Compose)

2. 使用Compose编排微服务

2.1 编写 docker-compose.yml 文件

2.2 修改并构建微服务工程镜像

2.3 启动 docker-compose 服务


1. 原始的微服务工程编排(不使用Compose)

 用 mysql,redis以及微服务工程这三个容器实例举例。如果不使用 Compose,需要如下操作:

  • 首先单独 docker run mysql容器实例
  • 然后单独 docker run redis容器实例
  • 将微服务工程打包成一个新的镜像,最后单独 docker run 微服务容器实例

但上述操作需要注意的是:

  • 先后顺序需要固定,先mysql + redis 才能使用微服务访问成功
  • 在编写微服务工程中的yml文件,对于redis等相关配置中,需要写ip,但如果容器间的启停导致ip发生变化,映射会出现错误,如下图


2. 使用Compose编排微服务

2.1 编写 docker-compose.yml 文件

(1) 首先定义 microService 服务,其中 microService 为服务名,可以自己定义。

上述配置,等价于执行下面操作:

docker run -d -p 6001:6001 -v /app/microService:/data --network atguigu_net --name ms01 zzyy_docker:1.6

(2) 然后定义 redis 服务 和 mysql 服务。

 注意:

  • 其中 command 类似于docker run -it 后面进入容器后执行的命令,如 docker run -it ubuntu /bin/bash 中的 /bin/bash
  • redis服务 和 mysql服务 里相较于 microService服务 没有写容器名,那系统会默认给服务名增加前后缀生成一个新的容器名
  • microService 服务中的 depends_on 定义了容器启动顺序,解决了容器之间的依赖关系
  • microService 服务、redis服务 和 mysql服务的 networks都为一个网络,以至于能够使用服务名来代替ip地址

(3) 最后定义采用的网络,下面的语句相当于执行 docker network create atguigu_net 命令。


2.2 修改并构建微服务工程镜像

(1) 修改微服务项目中的配置文件,将之前的固定ip地址修改为服务名。如下图:

(2) 使用mvn package命令将微服务形成新的 jar 包,并上传到宿主机服务器下。

(3) 编写Dockerfile,将微服务工程打包成一个新的镜像 docker build -t zzyy_docker:1.6,注意 jar包的位置和Dockerfile的位置以及在2.1配置的yml文件位置要一样,如下图:


2.3 启动 docker-compose 服务

(1) 检查编写的yml文件是否有问题,如有问题则控制台输出错误信息

docker-compose config -q

(2) 启动所有 docker-compose 服务(并后台运行:可选) 

docker-compose up -d

(3) docker-compose 关停所有服务 

docker-compose stop

注:本文部分文字内容来自于 使用compose编排服务 的学习笔记,仅供参考。如看其他Docker内容,可看我博客Docker系列aaron_neil_Dcoker系列,持续更新中。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...