当前位置: 首页 > news >正文

docker进阶 compose等

Docker Compose

简介:

比如有100个微服务,不需要手动启动每一个,可以使用docker compose定义运行多个容器,高效管理化。

定义、运行多个容器

YAML file配置文件

single command 命令

写docker-compose.yaml
docker-compose up 启动项目

Compose

version: "3"  # optional since v1.27.0
services:web:build: .ports:- "5000:5000"volumes:- .:/code- logvolume01:/var/loglinks:- redisredis:image: redis
volumes:logvolume01: {}

配置web连接到redis,会先启动redis,再启动web应用

官方下载compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose国内镜像下载
sudo curl -L  https://get.daocloud.io/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose#授权
chmod +x /usr/local/bin/docker-compose

构建个应用在/root/doc/compose_test

1、应用app.py

2、Dockerfile构建镜像

3、docker-compose.yaml

4、docker-compose up 启动

#可以先docker-compose build后再 up启动

启动后流程

ctrl+c停止退出后,可以重新docker-compose up启动

在这里插入图片描述

默认的服务名,文件名_服务名_num

网络规则,compose自动生成了一个网络,项目中的内容都在同一个网络中,通过域名访问

在这里插入图片描述

如果在同一个域名下,可以直接通过域名进行访问,比如redis服务直接通过redis域名访问,而不需要通过ip,如下

在这里插入图片描述

yaml规则

docker-compose.yaml核心

version: '' #版本
services:  #服务服务1: web#服务配置imgaesbuildnetwork....服务2: redis..........

compose 官方文档

https://docs.docker.com/compose/compose-file/compose-file-v3/#command

搭建博客

官方文档地址:

https://docs.docker.com/samples/wordpress/

version: "3"services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestvolumes:- wordpress_data:/var/www/htmlports:- "8000:80"restart: alwaysenvironment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress
volumes:db_data: {}wordpress_data: {}

进入yaml的文件夹docker-compose up 启动项目

后台启动

docker-compose up -d

Docker Swarm

集群搭建

初始化节点

docker swarm init --advertise-addr 192.168.148.136

在这里插入图片描述

#加入节点

docker swarm join

#在主节点主机执行下面的命令可以获得加入成为主节点的命令,然后将此命令在对应的机器上执行加入。

docker swarm join-token manager #获取主节点加入的命令

下面的命令就是生成的

在这里插入图片描述

步骤

1、生成主节点

2、加入(管理者、worker)

目标:双主双从(一般至少三个主节点)

Raft协议

双主双从:假设一个节点挂了,其他节点是否可以用

Raft协议:保证大多数节点存活才可以用。

如果将主节点挂掉一个,会导致主节点的数量过少而不能使用集群

在这里插入图片描述

docker1主节点关闭重启后由原来的leader变成了reachable,

在这里插入图片描述

#在对应节点上执行,会离开集群

docker swarm leave

在这里插入图片描述

需要保证有两个主节点存在才能使用

在这里插入图片描述

集群可以用,3个主节点 ,大于1台管理节点存活

使用docker service 进行集群的操作

#类似docker run
docker service create -p 8888:80 --name mynginx nginxdocler run 容器启动,不具有扩缩容器功能
docker service   集群启动,可以扩缩容

docker service 启动的时候,虽然是在docker1服务器上启动,但是容器可能启动在集群的docker3中

docker service update --replicas 10 mynginx
#创建10个mynginx的副本。
docker service update --replicas 10 mynginx
#回滚到剩下1个节点#动态扩缩容
docker service scale mynginx=5#集群移除服务
docker service rm mynginx  

swarm是小型的k8s。

只要在集群的某一台服务器上启动一个服务,所有集群里面机子都可以访问得到。

概念总结

swarm

集群的管理和编号,docker可以初始化一个swarm集群,其他节点可以加入(管理、工作者)

Node

就是一个docker节点,多个节点就组成了一个网络集群(管理、工作者)

Service

任务,可以在管理节点或工作节点来运行(核心!),用户需要进行访问的服务。

使用docker service 进行操作

Task

容器内的命令,细节任务!

replicas :4 表示四个副本,可以进行均衡调度

在这里插入图片描述

docker stack

docker-compose 单机部署

docker stack 集群部署

#单机
docker-compose up -d wordpress.yaml#集群
docker stack deploy workpress.yaml

docker secret

安全证书、密码等

docker config

配置

http://www.lryc.cn/news/431223.html

相关文章:

  • [详细建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
  • 网络编程(TCP+网络模型)
  • Docker Image 命令
  • 如何在IntelliJ IDEA中将Tab设置为4个空格
  • ASP.NET Core 入门教学十五 异步编程
  • pycharm 2024.1下载、安装
  • 实变函数精解【18】
  • 【深入解析】AI工作流中的HTTP组件:客户端与服务端执行的区别
  • 用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(上篇)
  • 调用火山云的语音生成TTS和语音识别STT
  • 中间件解析漏洞
  • 如何在Mac电脑上本地部署Stable Diffusion:详细教程(webUI)
  • FPGA随记——移位寄存器
  • Java | Leetcode Java题解之第390题消除游戏
  • 新型PyPI攻击技术可能导致超2.2万软件包被劫持
  • spring cloud gateway 之删除请求头
  • Flutter自动打包ios ipa并且上传
  • 深入理解synchronized的原理是什么
  • Electron32-Vue3OS桌面管理os模板|vite5+electron32+arco后台os系统
  • c++ 定义函数
  • 【深度学习 计算机视觉】计算机视觉工程师所需的和有帮助的基本技能
  • 【CSS】如何写渐变色文字并且有打光效果
  • Android 14(API 级别 34)中,DexClassLoader 不再支持可写 dex/jar 文件
  • Linux -动静态库
  • 原点安全荣获“AutoSec Awards 安全之星”优秀汽车数据安全合规方案奖
  • 2024前端面试题分享
  • 数学基础 -- 线性代数之正交矩阵
  • PostgreSQL 17即将发布,新功能Top 3
  • 心觉:别再做单线程的打工人!换个思路突破
  • 深度学习-用神经网络NN实现足球大小球数据分析软件