容器化核心快速入门

概述

  • 物理机:好比是独立的大船,独立发动机,独立船舱。所有资源共用。运水果的同时就不能运鱼( 1964年)
  • 虚拟机:相当于把大船进行改造,把大船的资源进行独立的拆分,独立的部分都有单独的发动机、船舱资源,互不影响。可以同时运水果、蔬菜、鱼。但是独立分隔的资源,会有资源损耗和浪费。(2006年)
  • 容器:相当于船上的集装箱。集装箱之间相互隔离,不用关心集装箱里装的什么。对大船的资源实现更高程度的使用。( 2013 年)

容器

随着信息爆炸时代来临,服务数量也随之激增。零散的几个服务可能不需要费劲就能管理好,但是要做大做强,我们就需要组建集群(船队)。这时候,如何管理船队就变成了一个难题:

Docker

什么是Docker

Docker是基于容器技术开发的一个应用, 提供了一个开放的、标准化的打包、部署容器的方法。使得容器实现轻巧、秒级启动、版本管理、可移植性等特性。

Docker底层实现

  • VM虚拟机 在物理机上虚拟一个独立的Guest OS,并利用Hypervisor虚拟化CPU、内存、IO设备等实现资源隔离。
  • Docker 利用Linux内核特性实现的隔离,运行容器的速度几乎等同于直接启动进程。 每个容器一个单独的命名空间,容器内的应用都像是运行在独立的OS中一样,彼此之间互不影响。

容器镜像

  • 镜像是一个特殊文件系统,提供容器运行所需的程序、库、资源、配置等。
  • 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • 镜像相当于一个只读的模板,可以用来创建容器。

Dockerfile

  • Dockerfile是用来构建镜像过程的描述文本文件,包含自定义的指令和格式。
  • 可以通过docker build命令根据Dockerfile构建镜像。

容器

  • 从镜像创建的运行实例。可以被启动、开始、停止、删除。
  • 镜像好比光碟,容器好比用光碟播放出来的电影。
  • 容器本质上是运行在宿主机上的进程。
  • 容器通过linux的namespace实现资源隔离,通过cgroups实现资源限制,通过Capabilities实现了操作权限控制。
Go 复制代码
Docker ps

Dockerfile编写实践:基本语法

Docker常用命令

  • docker build,构建镜像;
  • docker push,推送镜像;
  • docker run,新建并启动容器;
  • docker stop,停止容器;
  • docker rm,移除容器;
  • docker ps,查看容器;
  • docker logs, 查看容器中的日志;
  • docker exec,进入容器并执行命令;

Kubernetes (k8s)

什么是K8S

Kubernetes (k8s)是2014年谷歌开源的一个能满足自动化部署、弹性伸缩和调度管理的开源容器化平台。使用 Kubernetes,你可以快速、高效地满足docker集群管理需求。

k8s整体架构图

Kubernetes常用资源

  • Pod,可被k8s管理的最小部署单元,包含一个或多个容器。
  • ReplicaSet & Deployment,无状态服务,Pod管理控制器,管理副本数量、升级策略等。 StatefullSet,有状态服务,稳定标识,有序部署,扩展。
  • DaemonSet, Pod 运行在集群中的全部或者部分节点上。
  • Job,Cronjob ,任务管理
  • Service,为一组pod提供一种可以访问它们的策略 ,并提供负载均衡的能力
  • Ingress,用于将不同URL的访问请求转发到后端不同的Service,以实现HTTP层的业务路由机制。
  • Volume,持久存储卷。
  • ConfigMap,Secret,配置管理,秘钥管理。
  • HPA,水平自动扩缩容,基于服务负载实现实例自动增减。

Kubernetes几个重点的功能特性:

容器化优势

相关推荐
菜菜-plus1 小时前
微服务技术,SpringCloudAlibaba,Redis,RocketMQ,Docker,分库分表
java·spring boot·redis·spring cloud·docker·微服务·java-rocketmq
瑕、疵1 小时前
使用Docker Compose简化微服务部署
docker·微服务·容器
甲柒3 小时前
12-Docker发布微服务
java·docker·微服务
Arc星语5 小时前
Docker Redis集群3主3从模式
redis·docker
工作不忙8 小时前
不使用docker-compose不使用zookeeper启动ApacheKafka3.8.0单机运行KRAFT模式
ubuntu·docker·zookeeper·kafka·apache
盒马盒马8 小时前
Docker:存储卷
docker·容器
Hadoop_Liang9 小时前
Docker Compose一键部署Spring Boot + Vue项目
vue.js·spring boot·docker
诡异森林。10 小时前
Docker:容器化和虚拟化
java·docker·容器
斯普信专业组14 小时前
K8s企业应用之容器化迁移
云原生·容器·kubernetes
颜淡慕潇15 小时前
【K8S系列】Kubernetes 中 Service IP 分配 问题及解决方案【已解决】
后端·云原生·容器·kubernetes