目录
Compose
简介
概念
为什么需要?
配置字段
常用命令
安装
1.下载
2.授权
使用
1.创建文件
2.启动
docker Swarm
关键概念
调度策略
spread
binpack
random
特性
集群部署
1.准备
2.创建swarm并添加节点
在主服务器上创建swarm集群
节点加入集群
查看节点信息
Compose
简介
Docker Compose是一个用于定义和运行多个Docker容器的工具。它允许用户使用YML文件来配置应用程序需要的所有服务,然后使用一个命令,就可以从YML文件配置中创建并启动所有服务。Docker Compose简化了Docker容器的管理和部署过程,使容器管理变得更加高效和可靠
概念
docker-compose将所管理的容器分为三层:工程、服务、容器
工程:docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名
服务:可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖
容器:一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题
docker-compose的工程配置文件默认为docker-compose.yml
为什么需要?
就是来管理多个容器的,定义启动顺序的,合理编排,方便管理
配置字段
常用命令
运行这些命令需要结合docker-compose一起使用。
且必须要在含有docker-compose.yml文件的目录中才可以使用,不然报错
docker-compose up
:启动Compose服务。docker-compose start
:重新启动已停止的Compose服务。docker-compose stop
:停止Compose服务。docker-compose rm -f
:删除已停止的Compose服务。docker-compose ps
:列出Compose服务中的各个容器docker-compose build
:重新构建服务docker-compose exec
:在容器里面执行命令docker-compose scale
:指定一个服务容器启动数量docker-compose top
:显示正在运行中的容器进程docker-compose logs
:查看服务容器的输出docker-compose down
:删除容器、网络、数据卷和镜像
安装
docker-compose是docker的独立产品,因此需要安装docker之后再单独安装docker compose
1.下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.授权
给他一个执行权限
sudo chmod +x /usr/local/bin/docker-compose
使用
docker-compose通过docker-compose编写yaml配置文件、可以通过compose一键启动所有服务,停止
1.创建文件
项目根目录下创建一个名为docker-compose.yml
的文件
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:8080
db:
image: mysql
ports:
- 3306:3306
2.启动
项目根目录下使用命令:docker-compose up
docker Swarm
Swarm是Docker公司推出的用来管理docker集群的平台;多台服务器搭建一个docker集群,每个服务器就是集群中的一个节点。
关键概念
swarm :集群管理工具
node :节点,一个节点就是docker集群中的一个实例,我们可以在单台服务器上运行一个或多个节点。
service :应用编排
task : 应用实例
从集群角度来说,一个 Swarm 由一个或多个 Docker 节点组成。这些节点可以是物理服务器、虚拟机、树莓派(Raspberry Pi)或云实例。唯一的前提就是要求所有节点通过可靠的网络相连
调度策略
swarm在调度(scheduler)节点(leader节点)运行容器的时候,会根据指定的策略来计算最适合运行容器的节点,目前支持的策略有:spread,binpack,random
spread
选择运行容器最少的那台节点来运行新的容器;使用Spread策略会使得容器会均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器
binpack
最大化的避免容器碎片化,就是说binpack策略尽可能的把还未使用的节点留给需要更大空间的容器运行,尽可能的把容器运行在一个节点上面
random
就是随机选择一个Node来运行容器,一般用作调试用
特性
1.强大的集群容错性
2.服务节点的可拓展性
集群部署
1.准备
准备3台服务器,并安装好docker
yum -y install docker
修改3台服务器主机名
关闭3台服务器防火墙
2.创建swarm并添加节点
在主服务器上创建swarm集群
docker swarm init --advertise-addr 192.168.21.142
Swarm initialized: current node (qcjc4vkza2nr4uj2p1fwvpx4e) is now a manager.
节点加入集群
在两台节点服务器上执行以下命令,将服务器加入到swarm集群,作为集群的节点使用
docker swarm join --token SWMTKN-1-4kdb7ysckerhxc6gxc3bpltkxtm8o45yq1ikyv1kie825zibhh-bhwazb9y8i3s92v8mpv5c06so 192.168.21.142:2377
查看节点信息
docker info