zl程序教程

您现在的位置是:首页 >  其他

当前栏目

『 云原生·Docker』Docker-compose 容器编排

2023-04-18 14:22:00 时间

系列文章目录

本系列主要分为以下六大部分,正在更新中,尽请期待!

🚩点击关注本专栏


提示:已经更新的或正在更新的文章前面打勾了哈!


前言

在本专栏之前的文章中,我们已经学习了Docker的一系列知识,其中Docker 建议我们每一个容器中只运行一个服务,因为 Docker 容器本身占用资源极少,所以最好是将每个服务单独的分割开来,但是我们在实战部署的时候往往需要同时部署好多个服务,难道要每个服务单独写 Dockerfile ,然后再去构建镜像、构建容器吗?

这样做太累了,所以 Docker 官方给我们提供了 docker-compose 多服务部署的工具。

一、初识Docker-compose 容器编排

Docker Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。

你需要定义一个 YAML 格式的配置文件 docker-compose.yml,写好多个容器之间的调用关系。之后,只要一个命令,就能同时启动/关闭这些容器。

Docker Compose 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。

Docker-Compose 解决了容器与容器之间如何管理编排的问题。

1.Docker Compose 的核心概念

Docker Compose 的核心主要是一个文件和两个要素分别是:

  1. 一个文件:docker-compose.yml文件
  2. 两要素:
    - 服务(service)一个个应用容器实例,比如订单微服务、库存微服务、mysql 容器、nginx 容器或者 redis 容器。
    - 工程(project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

2.Docker Compose 的使用步骤

Docker Compose 的使用步骤:

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

3.Docker与Docker-Compose的区别

  1. docker是自动化构建镜像,并启动镜像。 docker compose是自动化编排容器。
  2. docker是基于Dockerfile得到images,启动的时候是一个单独的container
  3. docker-compose是基于docker-compose.yml,通常启动的时候是一个服务,这个服务通常由多个container共同组成,并且端口,配置等由docker-compose定义好。
  4. 两者都需要安装,但是要使用docker-compose前提是必须已经安装docker。

4.Docker-Compose生命周期

由于docker-compose是建立在docker的基础上的,因此docker-compose的生命周期与docker相似。

生命周期:

  1. 编写docker-compose.yml
  2. 通过build建立服务镜像;
  3. start启动服务;
  4. pause/unpause暂停/恢复服务;
  5. restart重启服务;
  6. stop停止服务;
  7. rm停止容器服务并强制删除;

二、安装与卸载Docker-compose

1.安装

在我们安装Compose之前,需要先安装Docker。

  • 以编译好的二进制包方式安装
# 国外地址安装 
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 国内地址安装(推荐)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 安装之后我们设置文件可执行权限
chmod 777 /usr/local/bin/docker-compose
  • 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 查看Docker-compose 版本信息
docker-compose -version

2.卸载

  • 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

三、Docker-compose 的常用命令

1.查看帮助

  • 命令:
docker-compose -h

2.启动docker-compose 服务

  • 命令:
docker-compose up

3.启动 docker-compose 服务并后台运行

  • 命令:
docker-compose up -d

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

  • 命令:
docker-compose down

5.进入容器实例内部

  • 命令:
# 服务id 在 docker-compose.yml 中定义的
docker exec -it 服务id /bin/bash

6.查看容器

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

  • 命令:
docker-compose ps

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

  • 命令:
docker-compose top

7.查看容器输出日志

  • 命令:
docker-compose logs 服务id

8.检查配置

  • 命令:
# 检查配置
docker-compose config

# 检查配置,有问题才有输出
docker-compose config - q

9.重启服务

  • 命令:
docker-compose restart

10.启动服务

  • 命令:
docker-compose start

11.停止服务

  • 命令:
docker-compose stop

看看本专栏文章有哪些吧!

本系列文章目录:

  • 『 云原生·生之门』
  • 『 云原生·前置知识』
  • 『 云原生·Docker』
  • 『 云原生·Kubernetes』
  • 『 云原生·KubeSphere』
  • 『 云原生·DevOps』

🚩点击关注本专栏

可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!

总结

Docker Compose 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。

Docker-Compose 解决了容器与容器之间如何管理编排的问题。