Docker Compose
简介
docker
Dockerfile bulid run 手动操作,单个容器!
当微面临微服务时;比如有100个微服务项目,并且相互之间有依赖关系。
Docker Compose 来轻松高效的管理容器。定义运行多个容器。
官方介绍
作用:批量容器编排。
使用三部曲:
- 用Dokcerfile定义你的项目,这样它就可以在任何地方复制。
- 在docker-compos.yml中定义组成项目的各个微服务。
- 启动项目docker compose up
我自己的理解
compose是docker官方的开源项目。需要安装!
dockerfile让程序在任何地方运行。
docker-compos.yml示例
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
docker-compose up 100个服务
compose:重要的概念
服务services:容器 应用 (web、redis、mysql…)
项目project:一组关联的容器。博客。web 、mysql 、wp
安装
官方文档
#官方下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
# 加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
1 下载
2 授权
快速开始 体验
跟着官网做 python应用,计数器 redis
总结:
1、应用app.py
2、Dockerfile应用打包为镜像
3、docker-compose yaml文件(定义整个服务,需要的环境。web、redis)完整的上线服务
4、启动compose项目(docker-compose up)
流程:
1、创建网络
2、执行docker-compose yaml
3、启动服务
docker-compose yaml
creating composetest_web_1 …done
creating composetest_redis_1 …done
docker images
默认的服务名 文件名_服务名_num
多个服务器。集群。 A B _num 副本数量
服务redis服务=>4个副本。
集群状态。服务都不可能只有一个运行示例。弹性、 10 HA 高并发。
kubectl service 负载均衡。
网络规则
10个服务 = > 项目(项目中的内容都在同网络下。域名访问)
如果在同一个网络下,我们可以直接同域名访问
HA停止:docker-compose down ctrl+c
docker-compose
以前都是单个docker run 启动容器。
docker-compose。通过docker-compose编写yaml配置文件、可以通过compose一键启动所有服务,停止。
docker小结
- docker镜像。run ->容器
- dockerfile 构建镜像(服务打包)
- docker-compose 启动项目(编排、多个微服务、环境)
- docker网络
yaml规则
三层
version: "" # 版本
services: # 服务
web: #服务1
#配置服务
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis: #服务2 redis
image: redis
#服务3:...
#其他配置 网络、卷、 全局规则
volumes:
logvolume01: {}
依赖
在描述多个相互有依赖的项目时:
- docker-compose up 启动服务要按照依赖顺序执行,列如:在启动web项目之前需要先启动db和redis
- docker-compose up SERVICE自动包含服务依赖。比如创建 docker-compose up web同时也启动了db和redis
- docker-compose up stop 停止服务也是按照依赖顺序执行,列如,先停止web在停止db和redis
学习要掌握规律
只要多写,多看compose.yaml配置!
开源项目 博客
下载程序、安装数据库、配置…
compose 应用。 =>一键启动!
项目地址:https://docs.docker.com/compose/wordpress/
- 下载项目
- 如果需要文件Dockerfile
- 文件准备齐全(直接一键启动项目)
前台启动
docker -d
dcoker-compose up -d
实战
- 编写项目微服务
- dockerfile
- docker-compose.yaml编排项目
- 上传服务器 docker-compose up
小结
未来项目只要有docker-compose 文件。按照这个规则,启动编排容器!
公司项目:docker-compose 直接启动
网上开源项目: docker-compose一键搞定
假如项目需要重新部署打包
docker-compose up --build #重新构建!
总结:
工程 服务 容器
项目compose: 三层
工程project
服务…
容器运行实例! docker k8s 容器
docker compose搞定
Docker Swarm
购买服务器
4台服务器安装docker
工作模式
搭建集群
未完待续…