欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker Compose 简介与安装全述

程序员文章站 2022-05-14 20:42:16
...

  Docker Compose 简介

  Compose是Docker官方的开源项目(源码地址:https://github.com/docker/compose),其前身是开源项目Fig,用于定义和运行多容器Docker应用程序的工具,Compose负责实现对Docker容器集群的快速编排。

  实际应用中,即使单点服务,也会包含应用服务器、数据库服务器、负载服务器等基本服务,使用dockerfile对这些服务器进行处理,会十分繁琐,而且随着应用的横向扩展或者微服务化,这项工作会变得十分困难。Compose恰好能解决这样的问题,可以通过一个单独的docker-compose.yml处理一组相关联的应用容器。

  Compose的两个重要概念:

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

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

  Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

​  Compose应用的三个步骤:

   · 通过dockerfile定义应用程序的环境。

   · 通过docker-compose.yml定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

   · 执行docker-compose up命令来启动并运行整个应用程序。

​  Docker Compose 安装

  Compose支持Linux、MacOS、Windows 10三大平台。

  Compose可以通过以下三种方式进行安装:

  1) 通过Python的包管理工具pip安装。

   确认pip是否已安装。

pip --version

Docker Compose 简介与安装全述

  pip没有安装,先安装pip

yum -y install epel-release
yum -y install python-pip

   再次确认pip是否安装。

Docker Compose 简介与安装全述

​  出现图中具体版本说明安装成功。

   pip版本过低会导致Compose安装失败。

Docker Compose 简介与安装全述

​   升级pip版本。

pip install --upgrade pip

Docker Compose 简介与安装全述

   通过pip安装Compose。

pip install docker-compose

Docker Compose 简介与安装全述

​   确认Compose是否安装成功。

Docker Compose 简介与安装全述

   通过pip卸载Compose。

pip uninstall docker-compose

Docker Compose 简介与安装全述

  2) 二进制文件方式安装。

​   访问https://github.com/docker/compose/releases,选择适合所用平台的文件下载,本文选择1.27.4版本的docker-compose-Linux-x86_64

curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Docker Compose 简介与安装全述

   对二进制文件授予应用可执行权限。

chmod +x /usr/local/bin/docker-compose

   确认Compose是否安装成功。

Docker Compose 简介与安装全述

   直接卸载Compose。

  只需删除docker-compose执行文件即可。

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

Docker Compose 简介与安装全述

  3) 在Docker中运行。

  Compose既然是一个应用,自然可以直接用容器执行它。

   下载Compose执行脚本run.sh,并赋予权限。

curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

Docker Compose 简介与安装全述

   查看Compose执行脚本即run.sh

#!/bin/bash
#
# Run docker-compose in a container
#
# This script will attempt to mirror the host paths by using volumes for the
# following paths:
#   * $(pwd)
#   * $(dirname $COMPOSE_FILE) if it's set
#   * $HOME if it's set
#
# You can add additional volumes (or any docker run options) using
# the $COMPOSE_OPTIONS environment variable.
#


set -e

VERSION="1.8.0"
IMAGE="docker/compose:$VERSION"


# Setup options for connecting to docker host
if [ -z "$DOCKER_HOST" ]; then
    DOCKER_HOST="/var/run/docker.sock"
fi
if [ -S "$DOCKER_HOST" ]; then
    DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST"
else
    DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH"
fi


# Setup volume mounts for compose config and context
if [ "$(pwd)" != '/' ]; then
    VOLUMES="-v $(pwd):$(pwd)"
fi
if [ -n "$COMPOSE_FILE" ]; then
    compose_dir=$(dirname $COMPOSE_FILE)
fi
# TODO: also check --file argument
if [ -n "$compose_dir" ]; then
    VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"
fi
if [ -n "$HOME" ]; then
    VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config
fi

# Only allocate tty if we detect one
if [ -t 1 ]; then
    DOCKER_RUN_OPTIONS="-t"
fi
if [ -t 0 ]; then
    DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"
fi

exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "[email protected]"

  可以看到,run.sh实际是下载并运行了镜像。

   确认Compose是否安装成功。

docker-compose version

Docker Compose 简介与安装全述

   直接卸载Compose。

  只需删除Compose执行脚本(即run.sh,本机的/usr/local/bin/docker-compose)即可。

Docker Compose 简介与安装全述

  总结

​  前两种方式是传统方式,适合本地环境中安装使用,最后一种方式不会破坏系统环境,更适合云应用场景。

​  若文中存在错误和不足,欢迎指正