Docker Compose
1 - Docker Compose概述
1、Docker Compose 官方介绍
Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。
要了解有关Compose的所有功能的更多信息,请参阅功能列表。
Compose可在所有环境中工作:生产,登台,开发,测试以及CI工作流。您可以在“常见用例”中了解有关每种情况的更多信息。
使用Compose基本上是一个三步过程:
-
使用定义您的应用环境,
Dockerfile
以便可以在任何地方复制。 -
定义组成应用程序的服务,
docker-compose.yml
以便它们可以在隔离的环境中一起运行。 -
Run
docker-compose up
and Compose启动并运行您的整个应用程序。
总结:Compose实现批量容器编排!
Compose 是Docker官方开源项目,需要安装!Dockerfile让程序在任何地方运行。web服务,redis,mysql,nginx ... 多个容器。
2、docker-compose.yml文件举例
version: "3.8" services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}
Compose两个重要的概念:
1、服务services:容器、应用。如mysql,web,redis等
2、项目project:一组关联的容器
2 - Docker Compose 的安装与第一个实例
1、官方安装帮助文档:https://docs.docker.com/compose/install/
2、下载
# 下载指令(官方提供的可能非常慢),建议使用国内的下载地址 sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 这个可能块一点 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
3、授权
sudo chmod +x /usr/local/bin/docker-compose
4、查看是否安装成功
5、compose 快速入门第一个案例
官方文档写的已经很清楚了,只需一步步按照文档来就可以了
https://docs.docker.com/compose/gettingstarted/
项目部署顺序梳理(python应用,计数器,Redis):
1、应用app.py
2、Dockerfile 应用打包为镜像
3、docker-compose yaml 文件(定义整个服务,需要的环境,web,redis)。完整的上线服务。
4、启动compose 项目(docker-compose up)
[root@VM-0-17-centos /]# docker service ls Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
默认的服务名:文件名_服务名_num
多个服务器,集群 A B _num(副本数量)
服务redis服务 ==> 4个副本
集群状态,服务都不可能只有一个运行实例,弹性 10 HA 高并发
负载均衡
Docker Compose 总结:
以前都是单个,docker run 启动容器
docker-compose,通过docker-compose编写yaml配置文件,可以通过compose 一键 启动/停止 所有服务
1、Docker镜像。 run =>容器
2、DockerFile 构建镜像(服务打包)
3、docker-compose 启动项目(编排、多个微服务/环境)
4、Docker 网络
3 - yaml 规则
1、docker-compose.yml compose的核心!
官方文档参考书
https://docs.docker.com/compose/compose-file/#compose-file-structure-and-examples
# 3层 ! version:' ' # 版本 services:' ' # 服务 服务1:web # 服务配置 images build network volume ...... 服务2:redis 服务3:tomcat # 其他配置 网络/卷 全局规则等 volume: network: configs:
4 - Compose实战
1、一键部署WP博客、官方示例
https://docs.docker.com/compose/wordpress/
2、部署微服务项目
1、编写微服务项目
2、Dockerfile 构建镜像
3、docker-compose.yml 编排项目
4、打包到服务里,并使用 docker-compose up 启动项目
5、测试
3、小结
未来项目只要有 docker-compose.yml 文件,按照这个规则,启动编排的容器。