Docker 与 K8S学习笔记(二)—— 容器核心知识梳理

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 本篇主要对容器相关核心知识进行梳理,通过本篇的学习,我们可以对容器相关的概念有一个全面的了解,这样有利于后面的学习。 一、什么是容器? 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在本地创建的容器几乎无需任何修改就可以在生产环境上运行。 容器

Docker 与 K8S学习笔记(二)—— 容器核心知识梳理


本篇主要对容器相关核心知识进行梳理,通过本篇的学习,我们可以对容器相关的概念有一个全面的了解,这样有利于后面的学习。


一、什么是容器?


容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在本地创建的容器几乎无需任何修改就可以在生产环境上运行。


容器 VS 虚拟机


既然容器是为应用程序提供封装与隔离,那为什么不用虚拟机呢?我们首先来看下二者的对比:


微信图片_20220428215857.png


从上图可以很明显看出,虚拟机是需要创建完整的操作系统环境以实现应用程序完全隔离,而容器则是共享宿主机操作系统这就使得容器的体积较虚拟机要小很多,并且由于启动容器不需要启动完整操作系统,所以容器相对于虚拟机部署和启动速度更快,开销更小也更容易迁移。


二、为什么需要容器


为什么需要容器?容器技术解决了什么问题?其实在本文开篇就说了,“容器是一种轻量级、可移植、自包含的软件打包技术”。即容器技术解决应用程序打包部署问题。如今的应用程序的在架构上较十几年前来说变得非常复杂,以前大部分应用程序以单体应用为主,通过负责均衡部署在多个物理机上,而现在很多应用程序都由多种服务组成并且部署在不同环境,这就对整个应用的部署提出挑战,在容器技术出来前,每次应用部署上线都会遇到各种各样的环境问题,这使得每一次发版都是一场噩梦。


基于这样的现状,Docker诞生了,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到生产环境上,这就极大解决了应用程序部署的环境依赖问题。


三、容器的架构与各组件介绍


1、Docker架构


Docker核心组件包括:


  • Docker客户端:Client
  • Docker服务端:Docker deamon
  • Docker镜像:Images
  • Docker容器:Containers
  • 镜像仓库:Registry


微信图片_20220428215928.png


Docker采用C/S架构,客户端向服务端发请求,服务端负责构建、运行和分发容器。


2、Docker客户端


Docker客户端(docker 命令)是用户与Docker交互的主要方式,通过这些命令我们可以很方便的构建和运行容器。


3、Docker服务端


Docker deamon以Linux后台服务方式运行,监听并处理来自客户端的请求,并管理诸多Docker对象(镜像、容器、网络和存储)。


4、Docker Registry


Registry是用于存放Docker镜像的仓库,其分为公有仓库和私有仓库,比如我们使用Docker Hub就是公有镜像仓库,我们也可以搭建仅供自己使用的私有仓库。


5、Docker Images


Docker镜像可以看作是创建Docker容器的只读模板。镜像有多种创建方式:


  1. 从无到有创建镜像;
  2. 下载并使用别人创建好的镜像;
  3. 在现有镜像上创建新的镜像。


我们将镜像的内容和创建步骤描述在一个文本文件中,此文件就是Dockerfile,通过docker build <Dockerfile>命令我们可以构建一个镜像。


6、Container


Docker容器就是Docker镜像的运行实例,对于应用程序,镜像是其软件生命周期中的构建和打包阶段,而容器则是启动和运行阶段。


分类: 容器技术

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
15天前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
56 5
|
15天前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
1天前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
8天前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
85 0
|
13天前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
15天前
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
30 4
|
11天前
|
Kubernetes Cloud Native 调度
深入探讨容器化技术:Kubernetes 的魅力
【10月更文挑战第6天】深入探讨容器化技术:Kubernetes 的魅力
27 0
|
13天前
|
运维 Kubernetes Cloud Native
云原生时代的容器编排:Kubernetes入门与实践
【10月更文挑战第4天】在云计算的浪潮中,云原生技术以其敏捷、可扩展和高效的特点引领着软件开发的新趋势。作为云原生生态中的关键组件,Kubernetes(通常被称为K8s)已成为容器编排的事实标准。本文将深入浅出地介绍Kubernetes的基本概念,并通过实际案例引导读者理解如何利用Kubernetes进行高效的容器管理和服务部署。无论你是初学者还是有一定经验的开发者,本文都将为你打开云原生世界的大门,并助你一臂之力在云原生时代乘风破浪。
|
15天前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
57 0
|
2天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
14 5

相关产品

  • 容器服务Kubernetes版