本文已参加 [新人创作礼] 活动,一起开启掘金创作之旅。
之前学习了docker的基本概念、常用命令,以及使用docker部署了rabbitmq 还学习了dockerfile的格式和常用指令,并使用dockerfile将自己的javaweb项目构建成镜像,并使用docker部署。 但是,在实际开发中,我们的项目会需要很多容器组成,比如简单的一个javaweb项目需要:mysql,java,redis等,启动和维护时会比较繁琐,本篇就学习下用docker compose 编排多个容器并部署。
概览
基本概念
(1) 什么是docker compose,它能做什么
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前
面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰
到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务
容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服
务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大
可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是DockerCompose。
所以,Docker Compose是一个用来定义和运行复杂应用的Docker工具。
(2) 名词解释
1、项目(Project):由一组关联的应用容器组成的一个完整业务单元,在
docker-compose.yml 文件中定义。
2、服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
安装dockercompose
本篇介绍两种安装方式
1.从github上下载docker-compose二进制文件安装
下载最新版的docker-compose文件
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-
compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-
compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
测试安装结果
$ docker-compose --version
docker-compose version 1.16.1, build 1719ceb
2.pip安装
sudo pip install docker-compose