`

Docker 三剑客之 Docker Compose

 
阅读更多

Docker-Compose 是 Docker 的一种编排服务,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。

前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose 。

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。

Docker Compose 介绍

通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

Docker Compose 工作原理图

Compose 中有两个重要的概念:

  • 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。

Docker Compose 安装

Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose .

方法一:

#下载
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version

方法二:

#安装pip
yum -y install epel-release
yum -y install python-pip
#确认版本
pip --version
#更新pip
pip install --upgrade pip
#安装docker-compose
pip install docker-compose 
#查看版本
docker-compose version

推荐使用方法一进行安装,安装成功后输入docker-compose version会返回 docker-compose 的版本信息,如下:

[root@localhost ~]# docker-compose version
docker-compose version 1.19.0, build 9e633ef
docker-py version: 2.7.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

出现以上信息,表明 docker-compose 安装成功

安装补全工具(可选)

为了方便我们输入命令,也可以安装 Docker 的补全提示工具帮忙我们快速输入命令

#安装
yum install bash-completion

#下载docker-compose脚本
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

Docker Compose 常用命令

使用docker-compose up -d在后台启动服务

[root@localhost composetest]# docker-compose up -d
Starting composetest_web_1 ... 
Starting composetest_web_1 ... done

使用docker-compose ps命令查看启动的服务

[root@localhost composetest]# docker-compose ps
       Name                      Command               State           Ports         
-------------------------------------------------------------------------------------
composetest_redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp              
composetest_web_1     python app.py                    Up      0.0.0.0:5000->5000/tcp

使用docker-compose stop停止服务。

[root@localhost composetest]# docker-compose stop
Stopping composetest_web_1   ... done
Stopping composetest_redis_1 ... done

其它常用命令

#查看帮助
docker-compose -h

# -f  指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d 

#启动所有容器,-d 将会在后台启动并运行所有的容器
docker-compose up -d

#停用移除所有容器以及网络相关
docker-compose down

#查看服务容器的输出
docker-compose logs

#列出项目中目前的所有容器
docker-compose ps

#构建(重新构建)项目中的服务容器。服务容器一旦构建后,将会带上一个标记名,例如对于 web 项目中的一个 db 容器,可能是 web_db。可以随时在项目目录下运行 docker-compose build 来重新构建服务
docker-compose build

#拉取服务依赖的镜像
docker-compose pull

#重启项目中的服务
docker-compose restart

#删除所有(停止状态的)服务容器。推荐先执行 docker-compose stop 命令来停止容器。
docker-compose rm 

#在指定服务上执行一个命令。
docker-compose run ubuntu ping docker.com

#设置指定服务运行的容器个数。通过 service=num 的参数来设置数量
docker-compose scale web=3 db=2

#启动已经存在的服务容器。
docker-compose start

#停止已经处于运行状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。
docker-compose stop

参考

Get started with Docker Compose
使用Docker-Compose编排容器

 

 

本文原文地址:http://www.ityouknow.com/docker/2018/03/22/docker-compose.html

分享到:
评论

相关推荐

    docker-compose安装包

    Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录...

    详解Docker三剑客

    在现代的云计算和DevOps领域,Docker已经成为了容器化技术的代名词,而“Docker三剑客”——Docker Swarm、Docker Machine和Docker Compose,则是Docker生态系统中的三个核心工具,它们分别负责了不同的任务,旨在...

    docker&docker-compose 19.03.14二进制安装

    在IT行业中,Docker和Docker Compose是两个极为重要的工具,它们在容器化应用程序部署和管理方面扮演着核心角色。本文将详细讲解如何通过二进制方式安装Docker 19.03.14及其配套的Docker Compose,并讨论它们的主要...

    docker-compose v2.5.0版本安装包

    Docker Compose version v2.5.0 docker-compose install success (你也可以自行去github上面下载最新的docker-compose的二进制包,但是这将浪费你半个小时的时间,然后还要自己安装。所以1.9元交个朋友)

    docker-compose Linux安装包(压缩包中含V1.29.2和V2.2.2两个版本)

    Docker Compose是Docker生态系统中的一个重要组成部分,它允许用户通过一个YAML文件来定义和运行多容器的应用。这个压缩包包含的是针对Linux系统的Docker Compose安装包,提供了两个不同版本:V1.29.2和V2.2.2。这两...

    一键安装docker环境:docker、docker-compose

    docker版本26.1.2,docker-compose版本v2.11.0。 1.把docker_compose_install-new文件夹放在任意路径; 2.chmod -R 777 install.sh 3.执行./install.sh 兼容:CentOS7.6、麒麟V10服务器版。

    最新版Docker20+dockerCompose2.2离线一键安装

    适用于Linux的Docker version 20.10.12, build e91ed57和Docker Compose version v2.2.2离线自动安装包。unzip解压后,进入解压出来的docker_x86_64目录,运行sudo bash install.sh docker-20.10.12.tgz 。自动运行...

    内网离线安装docker、docker-compose

    一键离线安装docker、docker-compose

    docker-compose-Darwin-x86_64.tgz

    【标题】"docker-compose-Darwin-x86_64.tgz" 是一个针对苹果Darwin(即Mac OS)平台的x86_64架构的Docker Compose安装包。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它允许通过YAML文件来...

    docker-compose_install.tar.gz

    【标题】"docker-compose_install.tar.gz" 是一个针对 CentOS 7 的 Docker 和 Docker Compose 的离线一键部署包。这个压缩文件提供了在没有网络连接或者网络环境受限的情况下,安装 Docker 和 Docker Compose 的便捷...

    docker-compose.tar

    1)解压后将docker-compose上传至服务器/usr/bin目录下 2)chmod + 755 docker-compose 3)docker-compose可以直接运行了

    docker-compose-linux-aarch64

    在IT行业中,Docker和Docker Compose是两个极为重要的工具,尤其对于开发、测试和部署微服务架构的应用程序来说。Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用及其依赖包到一个可移植的容器中,然后...

    docker-compose 容器部署 mqtt

    docker-compose 容器部署 mqtt 配置文件

    Ubuntu docker 20.10.12版本和docker-compose离线安装包

    这个包安装的是containerd的特定版本,确保Docker能与之协同工作。 3. `docker-ce_20.10.12_3-0_ubuntu-focal_amd64.deb`:这是Docker Engine的安装包,包含了所有使Docker能够运行和管理容器所需的核心组件。在...

    Docker-compose 教程全集 PDF 53页

    Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器 (container)。Docker-Compose运行...

    docker-compose安装包(三个版本)

    docker-compose安装包(三个版本)

    Docker-compose-2.4.1安装包

    Free。Docker-compose-2.4.1安装包:Linux。

    DockerCompose(博客所需资源).rar

    DockerCompose(博客所需资源)

Global site tag (gtag.js) - Google Analytics