一、Docker Compose概念
Docker Compose
(可简称Compose)是一个定义与运行复杂应用程序的 Docker 工具,是 Docker 官方编排(Orchestration)
项目之一,负责快速在集群中部署分布式应用。
其代码目前在 https://github.com/docker/compose 上开源。
1、为什么要使用 Docker Compose部署容器
仅使用docker命令部署和管理多容器:应用程序时往往需要编写若干脚本文件,使用的命令可能会变得冗长,包括大量的选项和参数,配置过程比较复杂,而且容易发生差错。
Docker Compose
实质:不是通过脚本和各种docker命令将多个容器组织起来,而是通过一个声明式的配置文件描述整个应用程序,从而让用户使用一条命令即可完成整个应用程序的部署。
Docker Compose
功能:将逻辑关联的多个容器编排为一个整体进行统一管理,提高了应用程序部署效率。
2、Docker Compose项目概念
Docker Compose
以项目为单位管理应用程序的部署。按从上到下依次分为以下三个层次。
项目(project):一组关联的容器组成一个完整的业务单位,实现一个应用程序,涵盖应用程序所需的所有资源。在 docker-compose.yml
文件中定义。
服务(service):具体定义容器运行的镜像.可以包括若干运行相同镜像的容器实例。
容器(container):指的是服务的副本。每个服务可以以多个容器实例的形式运行。
3、使用Docker Compose的基本步骤
- 使用
Dockerfile
定义应用程序的环境,以便可以在任何地方分发。Compose编排主要是用于多容器的复杂应用程序,但是镜像还是要基于Dockerfile构建。 - 使用Compose文件
docker-compose.yml
定义组成应用程序的服务。文件声明的配置,可以定义包含多个相关互联的容器的程序(服务)。 - 执行
docker-compose up
命令启动整个应用程序。
二、Docker Compose基本操作
1、安装 Compose
Compose 有两种常用的安装方式:
- 使用pip安装Docker Compose(Compose是用python写的)
# 注意:Docker Compose需要Python 3.6或更高版本。
$ pip install docker-compose
# 安装后判断是否安装成功
$ docker-compose -h
- 从GITHUB上的Docker Compose 仓库下载docker-compose二进制文件进行安装。
# 1.curl命令从GitHub上的Docker Compose仓库下载二进制文件
# 语法:curl -L "<GitHub上的Docker Compose仓库网址>" -o /usr/local/bin/docker-compose
# 下载实例:
[root@hecs-hqs-01 ~]# curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 24.7M 100 24.7M 0 0 39116 0 0:11:03 0:11:03 --:--:-- 55673
# 2.为该二进制文件添加可执行权限
[root@hecs-hqs-01 ~]# chmod +x /usr/local/bin/docker-compose
[root@hecs-hqs-01 ~]# ll /usr/local/bin/docker-compose
-rwxr-xr-x 1 root root 25968640 Jun 7 14:39 /usr/local/bin/docker-compose
# 3.进行命令测试
[root@hecs-hqs-01 ~]# docker-compose --version
Docker Compose version v2.6.0
2、卸载Compose
两种不同的安装方式,使用不同的卸载方法如下:
# 如通过 pip 安装,则可以以如下方式删除
$ pip uninstall docker-compose
# 二进制包安装,则删除二级制文件即可
[root@hecs-hqs-01 ~]# rm /usr/local/bin/docker-compose
3、使用Docker Compose 部署 WordPress
WordPress是个人博客系统,逐步演化成一款内容管理系统软件。使用PHP和mysql开发。
以部署 WordPress 为例示范使用 Compose进行容器编排的完整过程。
每个服务容器就是服务的一个副本,其名称格式:“项目名_服务名_序号”,序号编排从1开始&#x