Docker Compose容器编排工具

一、Docker Compose理论知识
1.1、Compose工具的由来
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。

​ 使用前面介绍的Dockerfile文件可以很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要 多个容器相互配合来完成某项任务的情况。

​ 例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分 布式应用一般包含若干个服务,每个服务一般都会部署多个实例。
​ 如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关 联的的应用容器,这就是Docker Compose。
Compose有2个重要的概念:

​ 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

​ 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

​ 1.2、docker-compose.yml文件的常用字段

Docker Compose容器编排工具_第1张图片

​ 1.3、Docker Compose常用命令

​ 基本的使用格式

docker-compose [options] [COMMAND] [ARG...]

//docker-compose选项:
  --verbose输出更多调试信息
  --version打印版本并退出
  -f, -file FILE使用特定的compose模板文件,默认为docker-compose.yml
  -p, --project-name NAME指定项目名称,默认使用目录名称
//举例:
docker-compose -f docker-compose.yml up -d

Docker Compose容器编排工具_第2张图片

二、安装Docker Compose工具

2.1、安装docker环境

docker 部署在这里不做介绍,有需要的可以看我前面的博客

2.2、下载docker-compose安装包

加载官方源速度会慢一些

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2.3、部署docker-compose

//可以在任何目录下使用compose命令
cp -p docker-compose /usr/local/bin

[root@localhost docker]# cp -p docker-compose /usr/local/bin/
[root@localhost docker]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3

Docker Compose容器编排工具_第3张图片

// 创建一个总目录(做nginx镜像)
mkdir /root/compose_nginx

cd /root/compose_nginx
// 创建一个nginx
mkdir nginx

//在nginx目录里 创建 nginx 的 Dockerfile(压缩包,启动脚本,Dockerfile脚本)

// 创建 docker-compose.yml

cd /root/compose_nginx

vim /root/compose_nginx/docker-compose.yml

version: '3'            // 版本声明是‘3’ 
services:           // 做服务
  nginx:            // 做nginx的服务
    hostname: nginx     // 容器的主机名:nginx
    build:          // 开始创建(直接关系到 Dockerfile)
      context: ./nginx      // 具体的文本的仓库位置
      dockerfile: Dockerfile    // dockerfile文件
    ports:          // 提供出来的端口
     - 1216:80          // 外端口
     - 1217:443         // 内端口
    networks:           // 网络名称,如果建立群集这个就是群集名称
     - abc          // 名称(想要和别的容器在一个网络下,名称必须一致)
    volumes:            // 数据卷
     - ./wwwroot:/usr/local/nginx/html      //绑定在容器当中的站点位置
networks:           // 声明下群集的名称
  abc:              // 群集的名称

// 创建 wwwroot 站点目录
cd /root/compose_nginx
mkdir wwwroot
cd wwwroot/

vi index.html

this is nginx

Docker Compose容器编排工具_第4张图片

Docker Compose容器编排工具_第5张图片

Docker Compose容器编排工具

启动 docker-compose.yml

docker-compose -f docker-compose.yml up -d
// -f 指向文件

Docker Compose容器编排工具_第6张图片

2.4、验证

​ 查看镜像和容器显示创建成功,我们可以访问服务。

Docker Compose容器编排工具

Docker Compose容器编排工具_第7张图片

Docker Compose容器编排工具_第8张图片