Docker Compose

Docker Compose

    • 简介
    • 安装与卸载
    • docker compose使用

简介

Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。从功能上看,跟OpenStack中的Heat十分类型。
其代码目前在https://github.com/docker/compose上开源。
Compose定位是[定位和运行多个Docker容器的应用(Defining and running multi-container Docker applicatons)],其前身是开源项目Fig。
通过第一部分中的介绍,我们知道使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

Compose恰好满足了这样的需求。它允许用户通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)。
Compose中有两个重要的概念:
1》服务(service):一个应用的容器,实际上可以包括着若干运行相同镜像的容器实例。
2》项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。
Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
Compose项目由Python编写,实现上调用了Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。

安装与卸载

1.Linux
从官方GitHub Release直接下载编译好的二进制文件即可。例如,在Linux64位系统上直接下载对应的二进制包。
1》在线安装

sudo curl -L  https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Docker Compose_第1张图片

2》离线安装

1.下载docker-compose脚本,下载地址:https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-linux-x86_64
2.放入/usr/local/bin
3.重命名 mv docker-compose-linux-x86_64 docker-compose
4.chmod +x /usr/local/bin/docker-compose

2.macos、window
Compose可以通过Python的包管理工具pip进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在Docker容器中运行。
Docker Desktop for Mac/Windows 自带docker-compose二进制文件,安装Docker 之后可以直接使用。

3.卸载
如果是二进制包方式安装的,删除二进制文件即可。

sudo rm /usr/local/bin/docker-compose

4.测试安装成功

docker-compose -v

docker compose使用

1.相关概念
1》服务(service):一个应用容器,实际上可以运行多个相同镜像的实例。
2》项目(project):由一组关联的应用容器组成的一个完整业务单元。一个项目可以由多个服务(容器)关联而成,Compose面向项目进行管理。

2.创建一个项目 mkdir cms

mkdir cms

在这里插入图片描述

3.在cms目录创建一个docker-compose.yml模板文件

cd /root/cms
touch docker-compose.yml

4.编辑docker-compose.yml

vim docker-compose.yml

内容如下:

# 代表使用docker-compose项目的版本号
version: "3.8"

services:
  tomcat:
    container_name: tomcat01  #代表给容器指定一个名称 类似于docker run --name 参数
    image: tomcat:8.0   #代表使用哪个镜像 类似于docker run 指定的镜像名称
    volumes:
      - /home/ccbt/docker:/home/ccbt/docker
    network_mode: "host"
    ports:   #代表宿主机和容器中端口映射  类似于docker run -p 参数
      - 8081:8080

  tomcat01:
    image: tomcat:8.0
    ports:
      - 8082:8080

  redis:
    image: redis:5.0.12
    ports:
      - "6379:6379"

  mysql:
    image: mysql:5.6
    ports:
      - "3308:3306"
    #environment:  #代表给当前容器启动指定环境  类似于docker run -e MYSQL_ROOT_PASSWORD=root
     # - "MYSQL_ROOT_PASSWORD"
    #volumes:      #代表给当前容器和宿主机指定数据卷 类似于docker run -v zz  注意:docker-compose使用绝对路径要求必须先创建才能使用
    #  - /root/mysqldata1:/var/lib/mysql

5.启动docker-compose服务

#启动docker-compose,执行这个命令必须在docker-compose.yml配置文件目录
docker-compose up -d 

-d:指的是后台启动docker-compose服务

docker-compose与docker的版本对应关系表
官网网址:http://docs.docker.com/compose/compose-file/compose-file-v3
Docker Compose_第2张图片
Docker Compose_第3张图片

你可能感兴趣的:(docker,docker,容器,运维)