本文主要介绍华为欧拉操作系统 openEuler-LTS-22.03 安装Docker-Compose保姆级教程。后面文章将介绍通过 Docker Compose 一键部署应用。
一、Docker Compose介绍
Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose作用是定义及运行多个Docker容器,非常适合使用多个容器进行开发的场景。
Docker-Compose允许用户通过一个单独的docker-compose.yml文件来定义一组相关联的应用容器。
一个docker-compose.yml对应一个项目,它有2个重要的概念:
服务(service):一个应用的容器,实际上包括若干个应用容器实例。在docker-compose.yml中定义。
项目(project):由一组关联的应用容器组成的一个完整业务单元。
一个 docker-compose.yml 文件就代表一个项目。一个项目可包含多个服务,每个服务中定义了容器运行的镜像,网络、端口等资源。
二、YAML文件格式及编写注意事项
1、YAML文件格式
- YAML是一种标记性语言,它可以很直观的展示数据序列化格式,可读性高。
- YAML数据结构通过缩进来表示,连续的项目通过
-来表示,键值对用:分隔,数组用中括号[ ]括起来,bash用花括号{ }括起来。
2、YAML文件格式
- 不支持制表符tab键缩进,只能使用空格缩进
- 通常开头缩进2个空格
- 字符后缩进1个空格,如冒号【:】、逗号【,】、横杠【-】
- 用#号表示注释
- 如果包含特殊字符用单引号【' '】引起来作为普通字符,用双引号【" "】表示特殊字符
- 布尔值必须用【" "】括起来,如 yes 或 no
- YAML区分大小写
三、Docker-compose使用
1、Docker-compose配置常用字段

2、Docker-compose常用命令

3、docker-compose.yml 基本结构
一个典型的 docker-compose.yml 文件包含几个基本部分:版本(version)、服务(services)、网络(networks)和卷(volumes)。
- 版本(Version):指定文件格式的版本,确保兼容性。随着 Docker Compose 的更新,版本也在不断迭代。
- 服务(Services) :这是
docker-compose.yml文件的核心部分,用于定义一个或多个服务。每个服务都可以看作是一个容器,每个容器可以配置镜像、端口映射、环境变量等。 - 网络(Networks):用于定义容器之间的网络。通过网络,不同的服务可以相互通信。
- 卷(Volumes):用于数据持久化和共享。卷可以被一个或多个容器使用,用于存储数据库数据、配置文件等。
4、使用Docker-compose步骤
1)编写Dockerfile文件,定义应用程序的环境;
2)编写docker-compose.yml,定义应用程序的服务,以便它们可以在隔离的环境中一起运行;
3)运行docker-compose up 启动并运行整个应用程序;
四、Docker-compose安装
1、Docker Compose版本
Docker Compose分为两个主要分支,兼容性逻辑完全不同,需先明确使用场景:

注意:Docker 官方在 2023 年后已停止 Compose V1 维护,新安装/升级优先选择 Compose V2(2.x 版本)
Docker 官方推荐的Docker Engine与Docker-compose 版本之间的关系:

2、下载文件
powershell
curl -L https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-`uname -s`-`uname -m` -o/usr/local/bin/docker-compose
3、文件可执行权限
powershell
chmod +x /usr/local/bin/docker-compose
4、查看版本信息
powershell
# 查看docker版本
docker -v
Docker version 20.10.24, build 297e128
# 查看docker-compose版本
docker-compose -v
Docker Compose version v2.1.0