一、简介
Compose 项目 是 Docker 官方的开源项目 , 负 责实 现对 Docker 容器 集群的快速编排,其前身 是开源项目 Fig, 目前仍然兼容 Fig格式的模板文件。
使用 一个 Dockerfile模板文件, 可以让用 户 很方便的定义一个单独 的应用容器 。 然而,在日常工作中 , 经常会碰到需要多个容器 相互配合来完成某项任务的情况。 例如要实现一个 Web 项目,除了 Web 服务容器 本身 , 往往还需要再加上后 端的数据库服务容器 , 甚至还包括负 载均衡容器 等。
优势:
Compose 恰好满足了 这样的需求。 它允许用户通过一个单独 的 docker-compose. yml 模板文件( YAML 格式) 来定义一组相 关联的应 用 容器 为 一个项目( project),在Docker基础上解决了多容器应用之间的依赖启动问题
Docker Compose 用于定义运行使用多个容器的应用,可以一条命令启动应用(多个容器)。
劣势:
Compose 只能够在本地或者 Docker Swarm 集群中运行
需要在 Swarm 之外运行怎么办?比如 Kubernetes?Compose 格式并非为分布式而诞生的,所以我们只能为选择的容器编排工具重新编写应用描述文件。
现在,在 Kubernetes Incubator 可以找到 Kompose。有了 Kompose,我们能够简单实现从 Docker Swarm 到 Kubernetes 的转换过程,这样就为 Docker 用户敞开了 Kubernetes 的大门。
使用Docker Compose 的步骤:
-
定义容器 Dockerfile
-
定义应用的各个服务 docker-compose.yml
-
启动应用 docker-compose up
二、安装
文章出处:
http://www.widuu.com/docker/compose/install.html
docker compose 安装
三种安装方式:
1.Python 的 pip 工具进行安装
2.直接下载编译好的二进制 文件使用
3.运行在 Docker 容器 中
第一种pip安装
yum -y install python-pip
pip install -U docker-compose
pip卸载; pip uninstall docker- compose
提示:pip是python的命令,需要下载文件
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
执行安装
python get-pip.py 这样pip命令就可以用了
审计‘pip install --upgrade pip
使用 docker-compose --version 来进行测试
第二种2进制安装
curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
二进制卸载 rm /usr/local/bin/docker- compose
第三种容器中安装
curl - L https://github.com/docker/compose/releases/download/1.8.0/run.sh >/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
升级
如果你使用的是 Compose 1.2或者早期版本,当你升级完成后,你需要删除或者迁移你现有的容器。这是因为,1.3版本, Composer 使用 Docker 标签来对容器进行检测,所以它们需要重新创建索引标记。
如果 Composer 检测到创建的容器没有标签,它将拒绝运行,这样你就不会有两组容器。如果你想要保留已经存在的容器(举例:这里有容器的数据卷上保留这非常重要的数据),你可以使用下边的命令来
迁移:
docker-compose migrate-to-labels
或者,如果这些容器是不必要的,你可以删除它们 - Composer 会重新创建一个新的