当前位置: 首页 > 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配置桌面图标、自研栅格拖拽布局模板。…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...