当前位置: 首页 > 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

配置

相关文章:

docker进阶 compose等

Docker Compose 简介: 比如有100个微服务,不需要手动启动每一个,可以使用docker compose定义运行多个容器,高效管理化。 定义、运行多个容器 YAML file配置文件 single command 命令 写docker-compose.yaml docker-compose …...

[详细建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级

A 题 “板凳龙” 闹元宵 “板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾相随盘旋&#x…...

网络编程(TCP+网络模型)

【1】TCP 初版服务器 #include <stdio.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <unistd.h> #include <arpa/inet.h> #include <string.h…...

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件&#xff0c; 这个文件包含了文件系统、 源码、库文件…...

如何在IntelliJ IDEA中将Tab设置为4个空格

前言 IntelliJ IDEA是一个强大的开发工具&#xff0c;支持多种编程语言。为了保持代码整洁一致&#xff0c;开发者经常需要调整编辑器中的Tab和缩进设置。 步骤1: 打开设置 首先&#xff0c;启动IntelliJ IDEA。在主界面上方的菜单栏中找到 File&#xff08;文件&#xff09…...

ASP.NET Core 入门教学十五 异步编程

在ASP.NET Core中&#xff0c;异步编程是一种非常重要的技术&#xff0c;它可以提高应用程序的性能和响应能力。本教程将介绍如何在ASP.NET Core中使用异步编程。 1. 异步编程基础 异步编程允许程序在等待某些操作&#xff08;如I/O操作&#xff09;完成时继续执行其他任务&a…...

pycharm 2024.1下载、安装

下载 下载官网&#xff1a; Other Versions - PyCharm 选择需要的版本下载&#xff0c;这里以 2024.1 的版本为例 安装 双击下载好的安装程序&#xff0c;点击下一步 选择安装路径&#xff0c;最好是英文路径&#xff1b;然后下一步 点击完成 激活 网址&#xff1a; Some…...

实变函数精解【18】

文章目录 有限测度有限测度概率测度有限测度与概率测度的关系 σ \sigma σ-有限测度计数测度完备概率测度 参考文献 有限测度 首先&#xff0c;我们来明确“测度”的概念。在数学中&#xff0c;测度是一个将集合映射到非负实数&#xff08;通常是实数的扩展&#xff0c;包括正…...

【深入解析】AI工作流中的HTTP组件:客户端与服务端执行的区别

在当今快速发展的技术环境中&#xff0c;AI工作流的设计和实现变得愈发重要。尤其是在处理HTTP组件时&#xff0c;前端执行与后端执行之间的区别&#xff0c;往往会对系统的安全性和数据的准确性产生深远的影响。今天&#xff0c;我们就来深入探讨这一话题&#xff0c;揭示前端…...

用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(上篇)

简介&#xff1a; 今天小李哥将介绍亚马逊推出的云平台4代高性能计算处理器Gravition&#xff0c;并利用该处理器构建生成式AI向量数据库。利用向量数据库&#xff0c;我们可以开发和构建多样化的生成式AI应用&#xff0c;如RAG知识库&#xff0c;特定领域知识的聊天机器人等。…...

调用火山云的语音生成TTS和语音识别STT

首先需要去火山云的控制台开通TTS和STT服务语音技术 (volcengine.com) 火山这里都提供了免费的额度可以使用 我这里是使用了java来调用API 目前我还了解到阿里的开源项目SenseVoice&#xff08;STT&#xff09;和CosyVoice(TTS)非常的不错&#xff0c;但是都是使用Python开发…...

中间件解析漏洞

一&#xff1a;IIS less-1 IIS6.X 步骤一&#xff1a;在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件 步骤二&#xff1a;在x.asp中新建⼀个.txt⽂件,内容为<%now()%> asp代码,更改后缀为jpg 步骤三&#xff1a;在外部浏览器进行访问Window2003的ip/x.asp/1.jpg&#xff0…...

如何在Mac电脑上本地部署Stable Diffusion:详细教程(webUI)

Stable Diffusion是一款强大的AI生成图像模型&#xff0c;它可以基于文本描述生成高质量的图像。对于想要在本地运行此模型的用户来说&#xff0c;使用Mac电脑部署Stable Diffusion是一个非常吸引人的选择&#xff0c;特别是对于M1或M2芯片的用户。本文将详细介绍如何在Mac上本…...

FPGA随记——移位寄存器

数电知识——移位寄存器&#xff1a;移位寄存器——数电第六章学习-CSDN博客 移位寄存器在FPGA中&#xff1a;FPGA原理与结构&#xff08;5&#xff09;——移位寄存器&#xff08;Shift Registers&#xff09;-CSDN博客...

Java | Leetcode Java题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution {public int lastRemaining(int n) {int a1 1;int k 0, cnt n, step 1;while (cnt > 1) {if (k % 2 0) { // 正向a1 a1 step;} else { // 反向a1 (cnt % 2 0) ? a1 : a1 step;}k;cnt cnt >> 1;step s…...

新型PyPI攻击技术可能导致超2.2万软件包被劫持

一种针对 Python 软件包索引&#xff08;PyPI&#xff09;注册表的新型供应链攻击技术已在野外被利用&#xff0c;并且目前正试图渗透到下游组织中。 软件供应链安全公司 JFrog 将其代号定为Revival Hijack&#xff0c;并称这种攻击方法可用于劫持 2.2万个现有 PyPI 软件包&am…...

spring cloud gateway 之删除请求头

在使用spring gateway作为网关时&#xff0c;我们经常需要在将请求转发到下游服务时&#xff0c;过滤掉某些请求头&#xff0c;以避免不必要的信息泄露&#xff0c;而spring gateway提供了RemoveRequestHeader内置的过滤器帮我们实现该功能&#xff0c;此外&#xff0c;我们也可…...

Flutter自动打包ios ipa并且上传

该脚本会自动打包iios ipa 并自动上传&#xff0c;中间自动flutter clean ,自动 pod install 里面需要填写自己应用的 apiKey和apiIssuer 如我的例子中apiKey 为 1234 apiIssuer 为5678&#xff0c; 首先flutter 工程目录 新建 shell目录&#xff0c;目录下新建ipa.sh文件&…...

深入理解synchronized的原理是什么

对象头锁机制原则 Synchronized 的原理是什么 Synchronized 是由JVM实现的一种实现互斥同步的实现方式。如果查看synchronized关键字修饰的字节码&#xff0c;会发现在编译器生成了monitorenter和monitorexit两个字节码指令。   这两个指令的意思就是在虚拟机执行到monitore…...

Electron32-Vue3OS桌面管理os模板|vite5+electron32+arco后台os系统

原创新作electron32.xvue3arco.design仿ipad/windows桌面os系统。 基于最新跨平台技术Electron32、Vite5、Vue3 setup、Pinia2、Arco-Design、Echarts、Sortablejs实战开发桌面版osx管理系统。内置ipad/windows两种桌面风格模板、动态json配置桌面图标、自研栅格拖拽布局模板。…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...