docker-compose学习随笔

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:(三步骤)

  1. Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
  2. Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
  3. Run docker-compose up and Compose starts and runs your entire app.

作用:批量容器编排
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副本数量

yaml规则编写

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-compose学习随笔_第1张图片
docker swarm工作原理
docker-compose学习随笔_第2张图片
逻辑不变:命令->管理->API->调度->工作节点(创建task容器维护创建)

你可能感兴趣的:(python)