Docker学习之旅(二)

好好好,回来更Docker了

Docker确实很重要,目前的主流平台一般都采用容器化技术,来实现不同的功能或页面

前情提要

为什么爬虫(一)中说差点坏事呢?

就是因为当时不清楚Docker Swarm 和 Docker compose 的不同作用

当时是由于博主想尝试一下feapder的内置管理平台,所以跟着feapder的教程一点点去部署docker服务

翻了很多记录,还是找不到当时的报错了emmmmmm,早知道当时记录一下了,好像是啥node来着

不过借助GPT反推回去还是可以的

image-20230815094549053.png

总之就是,我在单个服务器上,同时使用了Docker compose 和 Docker Swarm 导致容器部署的时候有些问题

值得注意的是:

  • Docker compose 旨在实现同时部署多个微服务(容器),或者一个命令启动整个应用,还是和上一篇说的一样,主要是打包
  • Docker Swarm 可以实现在分布式系统(多台服务器)的基础上,创建Docker容器集群,并进行相应的编排和管理

其实两者一般是不会冲突的,这就相当于一个是打包,一个是装箱,如果有多份水果捞,每份都可以打包(多个),打包结束后可以将多份同时装箱

这里的错误大概率是我装箱用了你打包的东西,导致两边都出现问题

(没看懂水果捞这个梗的可以看一下Docker学习之旅(一))

(ꈍ﹃ ꈍ)

气氛都到这了,不学一下Docker Swarm 说不过去吧

(*˘︶˘ *)


Docker Swarm

基础概念

  • Task

    Swarm 中的最小的调度单位,目前一个Task就是一个容器。

  • Service

    Service一般是由一组相同的Task组成,Service是这组Task要完成的任务的一个抽象。按照其包含的Task的布署方式分为两种:

    • replicated services 按照一定规则在各个工作节点上运行指定个数的任务。
    • global services 每个工作节点上运行一个任务。
  • Node

    节点分为两种,一种是负责管理的Manager另一种是具体干活的Worker。

    其中的Manager中有一个leader节点,是通过RAFT协议生成的(选举)

docker-swarm

优点

(这就是贫民博主感受不到的了)

  1. 内置容器编排: Docker Swarm 是 Docker 官方提供的容器编排工具,与 Docker 引擎紧密集成。这意味着您可以使用熟悉的 Docker 命令和工作流程来管理分布式应用程序,无需额外的学习成本。
  2. 内置高可用性: Docker Swarm 提供领导者选举、日志复制和状态同步等机制,以确保集群的高可用性。它能够自动处理节点故障和网络分区等情况,从而保持应用程序的可用性。
  3. 动态扩展: 通过 Docker Swarm,您可以轻松地扩展服务的副本数,以适应负载变化。Swarm 会自动管理容器的分布和负载均衡,无需手动干预。
  4. 动态更新: Docker Swarm 支持动态更新服务,使您可以逐步引入新版本的应用程序,同时监控其稳定性。这有助于降低风险并实现持续交付。
  5. 跨主机通信: Docker Swarm 提供内置的 Overlay 网络,允许容器在不同的主机之间通信,从而实现分布式应用程序的跨主机部署

示例

由于博主缺乏财力,因此只能使用单个服务器进行仿真

其实各位可以用VMware或者virtualbox安装虚拟机进行模拟(博主比较懒

( ˘ω˘ )

环境:Ubuntu 22.04

# 初始化
docker swarm init
#建项
docker service create --replicas 3 --name nginx-service -p 80:80 nginx
# 扩容
docker service scale nginx-service=5
#停止服务
docker service rm $ID
# 移除节点
docker swarm leave --force

image-20230815172043429.png

可以通过图片中的命令

docker swarm join --token SWMTKN-1-4********6w7qd06y1e33yrgko64sk 192.168.99.**:50

来实现工作节点的添加

同时可以通过docker info查看Swarm参数来确定是否配置成功

image-20230815172327463.png

今天先暂时这样,博主今天工作有点累

下期docker更新k8s,和docker 镜像仓库的相关内容

(唉,又出现了,用完docker swarm后,原来docker-compose配好的服务和容器都会在线但不能继续工作)

四处搜了点资料,感觉好像是网络桥接配置受影响还是资源受影响来着

使用docker-compose down + docker-compose up -d 可以重新上线对应服务

重新了解了一下nginx反向代理绑定端口的问题,修改一下GPT那篇博客的相关内容

参考资料

Docker Compose、Docker Swarm (docker进阶 狂神)

(菜鸟教程)Swarm 集群管理

文章作者: P4ul
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 打工人驿站
容器 Docker
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝