https://blog.csdn.net/qq_42971895/article/details/107848250
docker-compose
1、 docker compose学习
官方文档:
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.
Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.
Using Compose is basically a three-step process:(三步骤)
作用:批量容器编排
docker compose是docker官方的开源项目,需要安装,Dockerfile让程序在任何地方运行。例如:web服务,redis\mysql \nginx…多个容器。
Compose 重要概念
1、服务services:容器,应用。(web,redis,mysql…)
2、项目project。一组关联的容器,博客,web,mysql
安装(参考官方文档)
1、安装:
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、授权:
sudo chmod +x /usr/local/bin/docker-compose
3、查看是否安装成功:
docker-compose --version
根据官网文档操作一步一步进行
https://docs.docker.com/compose/gettingstarted/
1、建立应用
2、Dockerfile 应用打包成镜像
3、Docker-compose yaml文件(定义整个服务,需要的环境,web,redis等)完整的上线服务
4、启动compose项目(docker-compose up)
默认的服务名 文件名_服务名_num
多个服务器,集群,A B _num副本数量
docker-compose.yaml核心
https://docs.docker.com/compose/compose-file/
分为三层
version:“ ”#版本
services:#服务
服务 1
#服务配置
服务 2
其他配置
volumes:
networks:
configs:
开源项目
博客
下载程序、安装数据库、配置
compose应用,----->一键启动
https://docs.docker.com/compose/wordpress/
1、mkdir my_wordpress
2、cd my_wordpress
3、vim docker-compose.yml
#yaml文件
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {
}
体会
弹性,扩缩容,集群
docker run只是单机游戏,
docker-compose 启动一个项目,单机
集群:swarm docker service
docker swarm体验:
准备四台服务器,并且分别安装好docker。
节点分:管理节点跟工作节点
docker swarm --help查看帮助文档
创建一个管理节点
docker swarm init --advertise-addr 172.20.10.12
docker swarm join #加入节点
**获取令牌:**
docker swarm join-token manager
docker swarm join-token workder
个人理解集群:
每个服务器相当于不同的节点,如同蜘蛛网中的节点,全部是一个整体,协同合作,可以使用docker service去启动一个服务,创建不同的副本,即不同的容器会均匀的分布在不同的节点上,在业务量变化的时候可以扩缩容,对容器数量进行增删改查操作,集群中任何一个节点的服务都可以被访问,服务可以有多个副本动态扩缩容实现高可用。
例如启动服务命令:
docker service create -p 888:80 --name name jingxiang
相关service命令可参考以下文章
https://blog.csdn.net/liushuiwuyizhe/article/details/78296028
swarm
集群的管理和编排,docker可以初始化一个swarm集群,其他节点可以加入,(管理,和工作节点)
node
就是一个docker节点,多个节点就组成了一个网络集群,(管理、工作者)
service
任务,可以在管理节点或者工作节点来运行,核心!用户访问。创建可以类比docker run
Task
容器内的命令,细节任务
docker swarm工作原理
逻辑不变:命令->管理->API->调度->工作节点(创建task容器维护创建)