15.Docker-Compose的概念理解及安装

1.Docker-Compose是什么?

Docker-Compose是实现对Docker容器集群的快速编排的工具软件。它是Docker官方开源的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml.写好多个容器间的调用关系,然后,只需要一个命令,就能同时启动/关闭这些容器。

2.为什么会有Docker-Compose?它做什么?

随着微服务的发展,我们的系统是由多个微服务构成的,比如一个商城系统,我们用会员服务、商品服务、订单服务、支付服务等,除此之外,我们如果把MySQL和redis也用容器来启动,那么我们至少要启动6个容器,并且各个容器还有启动顺序。那么这样的话,如果我们要运行多个服务,难道我们要每个服务单独写Dockerfile,然后构建镜像,运行容器,很累很繁琐。

所以,随着docker容器越来越多,怎么统一管理容器,比如一键启动、停止、启动顺序的编排、容器之间网络管理成为了一个很大的问题。所以推出了docker-compose多服务部署工具。

3. Docker-Compose是怎么做的?

Docker-Compose允许用户通过一个单独的docker-compose.yml模板文件来定义一组相互关联的应用容器为一个项目。可以很容易的用一个配置文件定义一个多容器应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose解决了容器与容器之间如何管理编排的问题。

3.1 Docker-Compose的核心概念

Docker-Compose的核心概念主要有两个:

  1. docker-compose.yml 配置文件
  2. 两个要素是服务(service)和工程(project),service是指一个个应用容器,比如订单微服务、会员微服务、mysql容器;project简单说就是一个完整的app应用,由一组关联的应用容器组成一个完整业务单元,在docker-compose.yml定义。

3.2 Docker-Compose的使用步骤

  1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件;
  2. 使用docker-compose.yml文件,定义一个完整业务单元,编排好应用中的各个容器服务;
  3. 执行docker-compose up命令,来启动并运行整个应用程序,完成一键部署上线。

4. Docker-Compose怎么安装?

4.1 下载

下载最新的稳定版,这里采用这个下载,由于服务器上网络不好下载,我本地下载完成后上传的服务器

下载地址:

bash 复制代码
https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64

4.2 上传到服务器

通过ftp上传到服务器下面这个目录下

bash 复制代码
/usr/local/bin

然后重命名为docker-compose:

bash 复制代码
mv docker-compose-linux-x86_64 docker-compose

4.3 设置权限

bash 复制代码
chmod +x /usr/local/bin/docker-compose

4.4 验证


5. 我对Docker-Compose一些看法

Docker-Compose提供了一定能力的容器编排,并且基本是基于单机的,无法在大批量宿主机上进行服务的集群化部署。所以,在一些测试或者开发,甚至说比较小的一些单机项目上可以使用,也仅限于此。所以它的局限性很大,在大规模集群部署时,还是推荐使用k8s。但是在使用k8s之前,我们必须把容器给搞明白。

相关推荐
骅青19 天前
培训第四十一天(docker-compose一键部署项目,haproxy容器代理多个web或java容器)
docker·docker-compose·haproxy
fysuccess20 天前
Ubuntu22.04安装 docker和docker-compose环境
docker·容器·docker-compose·ubuntu22
荒Huang1 个月前
【Linux】安装部署docker及docker-compose
linux·运维·docker·docker-compose
oNuoyi2 个月前
使用Docker Compose给自己上传的JAR打包成镜像并自动启动容器
docker·容器·docker-compose·jar
老刘pro2 个月前
(2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
vue.js·react.js·docker·docker-compose
老刘pro3 个月前
(2024)docker-compose实战 (8)部署LAMP项目(最终版)
运维·docker·容器·docker-compose
NullPointerExpection3 个月前
redHat9 安装 docker、docker-compose、iptables 过程记录
linux·docker·docker-compose·redhat9·readhat
qq_413691353 个月前
docker-compose启动oracle11、并使用navicat进行连接
运维·docker·oracle·容器·docker-compose
玄德公笔记4 个月前
docker-compose部署 kafka 3.7 集群(3台服务器)并启用账号密码认证
服务器·docker·kafka·docker-compose·kafka 3.7·3台服务器·启用账号密码
流月up4 个月前
gitlab之docker-compose汉化离线安装
docker·gitlab·docker-compose·离线安装·汉化