Docker、Swarm、K8s 是 Linux 生态中容器化与集群管理的核心技术栈:Docker 是容器 runtime,Swarm 是 Docker 原生轻量编排,K8s 是生产级全功能编排平台 。无论是前后端开发还是运维测试,Docker 、K8s都是必学的技术 。对于一个Web前端全栈、或者Golang Java后端全栈、或者项目组长(主管),如果你不会Linux部署应用,不会Docker部署项目,不会配置nginx,不会配置https、不会搭建高可用负载均衡的项目,那么你肯定是假全栈。打通全栈最后一公里,大地老师专门为大前端全栈以及后端全栈打造的 **Linux Docker、Docker Compose、Docker Swarm、**Kubernetes 分布式微服务部署实战教程。
Docker、K8s介绍与部署学习:
https://www.bilibili.com/video/BV12QoeYsET1
https://www.bilibili.com/video/BV12QoeYsET1
Docker
-
定义:Docker 是 Linux 上最主流的开源容器化引擎,基于 Go 语言开发,利用 Linux 内核的 Namespace、Cgroup、UnionFS 实现轻量级虚拟化,能把应用与依赖打包为可移植容器。
-

-
核心组件:
- 镜像(Image):只读模板,包含应用及其运行环境。
- 容器(Container):镜像的运行实例,具有独立的进程、网络和文件系统。
- 仓库(Registry):存储和分发镜像的地方,如Docker Hub。
-
特点:
- 轻量级:容器利用并共享主机内核,不占用额外的可执行文件内存。
- 可移植性:一次构建,到处运行,不受环境限制。
- 隔离性:通过Linux内核的Namespace和Cgroup技术实现资源隔离。
-
适用场景:开发测试、小型服务部署、微服务架构等。
Swarm(此处特指Docker Swarm)
-
定义:Docker Swarm是Docker官方提供的容器编排工具,它允许用户将多个Docker引擎组合成一个虚拟的引擎集群,实现容器的批量管理和调度。
-
核心组件:
- 管理节点(Manager Node):负责集群状态维护和任务分配。
- 工作节点(Worker Node):负责运行容器。
-
特点:
- 轻量级:与Docker引擎深度集成,开箱即用。
- 简单易用:与Docker命令高度一致,使用Docker CLI即可管理。
- 资源占用低:管理节点内存通常小于100MB。
-
适用场景:中小型项目、快速原型开发、边缘计算等。
K8s(Kubernetes)
- 定义:K8s是由Google开发的开源容器编排系统,它提供了容器化应用的自动化部署、扩展和管理能力,已成为云原生计算的事实标准。用于大规模容器自动化部署、扩缩、自愈。

-
核心组件:
- 主节点(Master Node):包括kube-apiserver、etcd、kube-controller-manager、kube-scheduler等,负责集群管理和调度。
- 工作节点(Worker Node):包括kubelet、kube-proxy和容器运行时等,负责运行容器。
- 核心概念:如Pod、Service、Deployment、Namespace等,用于描述和管理容器化应用。
-
特点:
- 功能全面:支持自动化部署、扩展、管理、服务发现、负载均衡等。
- 生态系统丰富:拥有庞大的社区和丰富的插件、工具和解决方案。
- 企业级特性完善:提供高可用性、容错性、安全性和可扩展性等企业级特性。
-
适用场景:大型复杂应用、微服务架构、混合云环境、大数据与AI工作负载等。
三者比较
- 功能定位:Docker主要解决容器化应用的构建和运行问题;Swarm主要解决容器编排和批量管理问题;K8s则提供了全面的容器编排和管理能力,支持复杂应用场景。
- 易用性:Docker和Swarm相对简单易用,适合初学者和小型项目;K8s则相对复杂,需要一定的学习成本,但提供了更强大的功能和灵活性。
- 生态系统:Docker和Swarm的生态系统相对较小;K8s则拥有庞大的社区和丰富的插件、工具和解决方案,生态系统更加完善。
- Docker:容器化基础,所有场景必备,解决 "打包与运行"。
- Swarm:Docker 玩家快速上集群,轻量简单,适合小业务与测试。
- K8s:生产标准,复杂微服务、大规模、高可用必选。
Linux系列教程涉及知识点介绍 :
从0开始讲解Vmware虚拟机的使用、Linux操作系统安装、Linux常见命令、Linux远程管理、Linxu云服务器管理、Linux文件管理、Linux目录管理、Linux软件包管理、Linux 网络设置防火墙、Linux服务进、程端口、Linux 安装配置Apache、Linux上安装Nodejs 、以及PM2优化nodejs性能、Linux上安装配置Mongodb、Linux上面安装配置mysql、Linux安装配置Redis、Node中使用Redis、以及Linux安装配置Nginx、Linux Nginx+Nodejs多网站配置、Linux Nginx负载均衡、Linux Redis、SSl证书申请、 Nginx https配置。

Docker、Swarm系列教程涉及知识点介绍:
从0开始讲解了如何在Win Mac 以及Linux中安装Docker以及配置配置镜像加速器,通俗的讲解了什么是Docker镜像 Docker容器 Docker仓库,手把手的讲解了Docker镜像 Docker容器 Docker仓库的常用命令 Docker中的端口映射、数据卷挂载、传递环境变量,通过示例讲解了如何在Docker中部署Nginx、部署Nodejs、部署Mysql、部署Mongodb、部署Redis、部署golang、部署beego,详细的讲解了Dockerfile 以及如何通过Dockerfile 自动化部署自己的Nodejs、部署自己的golang、以及通过Dockerfile 构建自己的linux镜像,会部署应用以后我们还需要让应用通信,所以又讲解了Dcoker网络以及docker多台服务器容器跨主机通信。最后又讲解了Docker compose 和Dokcer swarm集群编排,以及如何使用swarm结合consul快速部署微服务。

**Kubernetes(K8S)**系列教程涉及知识点介绍 :
从零开始讲了如何借助腾讯云TKE搭建K8s集群,如何使用原生服务器搭建K8s集群,手把手的讲解了K8s中的Pod、Deployment、StatefulSet、Service、PV、PVC、StorageClass、ConfigMap & Secret、Ingress等。从Golang和Nodejs镜像构建 到分布式部署、从mongodb、mysql单数据库创建到mysql、mongodb主从集群数据库搭建 都有详细讲解。从原生K8s命令部署 到基于腾讯云TKE实战 都有详细讲解。应用的版本升级&回滚 、Pod扩缩容 、多端口映射、Service ClusterIp NodePort ExternalName网络通信机制 、 Helm 应用发布、应用配置分离、防火墙规则设置、多节点负载均衡、服务分布式部署都有详细讲解。
