【Docker】Docker基本概念

77 篇文章 0 订阅
7 篇文章 1 订阅

1.Docker概述

1.1 Docker是什么?

  • 是一个开源的应用容器引擎,基于go语言开发并遵循apache2.0协议开源
  • 在Linux容器里运行应用的开源工具
  • 是一种轻量级的 “虚拟机”
  • Docker的容器技术,可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器
  • Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱

在这里插入图片描述

鲸鱼可以看作宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序

1.2 Docker的宗旨

即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“ 一次封装、到处运行 “ 的目的,这里的应用既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

1.3 容器的优点

  • 灵活:即使是最复杂的应用也可以集装箱化
  • 轻量级:容器利用并共享主机内核
  • 可互换:可以及时部署更新和升级
  • 便携式:可以在本地构建,部署到云,并在任何地方运行
  • 可扩展可以增加并自动分发容器副本
  • 可堆叠:可以垂直和即时堆叠服务
  • 容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量
  • 虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多
    在这里插入图片描述

1.4 Docker与虚拟机的区别

在这里插入图片描述
在这里插入图片描述

1.5 容器在内核中支持的两种技术

Docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制 ,通过写时复制技术(copy-on-write)实现高效文件操作 (类似于虚拟机的磁盘,比如分配500g并不是实际占用物理磁盘500g,只有当需要修改时才复制一份数据)

1.6 namespace的六大类型

在这里插入图片描述

2.Docker核心概念

2.1 镜像

Docker的镜像是创建容器的基础,类似于虚拟机的快照,可以理解为一个面向docker引擎的只读模板.
通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包括代码、运行时间、库、环境变量和配置文件
docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统.因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是docker镜像的精髓。

2.2 容器

docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性
可以把容器看作是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等) 和运行在其中的应用程序

2.3 仓库

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到共有仓库(public)或者私有仓库(private), 当下次要在另一台机器上使用这个镜像时,只需从仓库获取.

Docker的镜像 、容器、日志等内容全部都默认存储在/var/lib/docker

3. 知识点总结

3.1 Docker是什么?

docker是一个go语言开发的应用容器引擎,用来运行容器里的应用。docker是用来管理容器和镜像的一种工具。

容器引擎:docker containerd  podman  rocket

3.2 容器和虚拟机的区别

容器虚拟机
所有容器共享宿主机的内核每个虚拟机都有独立的操作系统和内核
使用namesapce隔离资源,使用cgroup限制资源的最大使用量完全隔离,每个虚拟机都有独立的硬件资源
秒级启动速度分钟级启动速度
容器相当于宿主机的进程,性能几乎没有损耗需要hypervisor(虚拟机管理程序)对宿主机资源寻求访问,至少有20%~50%资源损耗
单机容量能够支持成百上千个容器单机容量只能支持最多几十个虚拟机

3.3 6种命名空间(Namesapce)

序号命名空间类型功能说明
No.1MNT Namespace提供磁盘挂载点和文件系统的隔离能力,使得每个进程只能看到自己的文件系统挂载点和文件系统层次结构。
No.2IPC Namespace提供进程间通信的隔离能力,:使得每个进程只能看到自己和同一命名空间中的进程的进程间通信(IPC)机制。
No.3Net Namespace提供网络隔离能力,使得每个进程只能看到自己的网络接口和路由表,从而实现网络隔离。
No.4UTS Namespace提供主机名隔离能力,使得每个进程只能看到自己的主机名和域名。
No.5PID Namespace提供进程隔离能力,使得每个进程只能看到自己及其子进程的进程树。
No.6User Namespace提供用户隔离能力,使得每个进程只能看到自己和同一命名空间中的进程的用户和用户组。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值