1.Docker-Compose概述
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。
例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。
这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。
Compose有2个重要的概念:
- 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
- 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
docker compose运行目录下的所有yml文件组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务可包括多个容器实例。docker-compose就是docker容器的编排工具,主要就是解决相互有依赖关系的多个容器的管理。
2.安装docker-compose
docker-compose的安装方式有两种,大家可以任选其一:
2.1 通过docker-compose文件安装
首先下载最新版的docker-compose文件
官方文档地址:Install Docker Compose | Docker Documentation
找到你对应的系统版本,下载安装即可
2.2 通过pip指令安装
我的是MAC系统,如果没有安装pip的,可以移步至此:Mac 系统:zsh: command not found: pip解决方法
输入:
pip install docker-compose
3.Docker-compose实战
以安装Mysql镜像为例:
首先创建mysql-compose.yml文件:
version: "3"
services:
mysql:
image: mysql:5.7.19
restart: always
container_name: mysql
ports:
- 3306:3306
volumes:
- /data/software/mysql/conf/:/etc/mysql/conf.d
- /data/software/mysql/data:/var/lib/mysql
- /data/software/mysql/log/:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: kangll
MYSQL_USER: kangll
MYSQL_PASSWORD: 123456
MySQL 容器启动与关闭
# 关闭
docker-compose -f docker-compose-mysql.yml down
# 启动
docker-compose -f docker-compose-mysql.yml up -d