docker学习笔记 一-----容器介绍

这篇具有很好参考价值的文章主要介绍了docker学习笔记 一-----容器介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近准备离职了,提前学习些新的知识,找工作的时候发现了很多公司招聘需求上都要求要懂docker和k8s,所以学习一下吧。

一、容器介绍

既然要学docker就首先要了解一下什么是容器:容器也是一种虚拟化的方案。但是容器与虚拟机不同,虚拟机是通过中间层将一台或多台虚拟系统独立运行在硬件之上。而容器是运行在操作系统内核之上的,也可以称容器为操作系统虚拟化。

二、容器的优缺点
2.1 优点

速度快:1、运行时性能可以获得极大的提升(官方经典案例给出的提升率时97%)。

               2、管理操作快:启动、停止、重启、删除等等运维操作都是以毫秒或秒为单位计算的。

敏捷:像虚拟机一样敏捷,而且便宜,在裸机上部署操作极为简单像点击 “部署按钮”一样简单。

灵活:将应用和系统“容器化”,仅需要添加或减少即可,不需要添加额外的操作系统。

轻量:你会拥有足够的“操作系统”,在一台服务器上可以部署100~1000个Containers容器。

便宜:开源的,免费的,低成本的。由现代Linux内核支持并驱动。

ps:轻量级的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。

生态系统:Google的趋势,docker or LXC

云支持:很多云服务商提供创建和管理Linux容器框架。

            有关Docker性能方面的优势,还可参考此IBM工程师对性能提升的评测,从各个方面比VMs(OS系统级别虚拟化)都有非常大的提升。

2.2 缺点

也不能算是docker的缺点吧,只能算是关于docker的一些争论:

1、在超复杂的业务系统中,各个容器之间能否实现彻底的资源隔离,单一容器崩溃或资源占用率较高会不会影响到宿主机和其他容器正常运行,到目前还存在疑虑,但是还未发现出现过上述情况。

2、被私有公司所控制:docker是被一家私有公司控制的,公司都是以营利为目的的,比如目前只能通过黑匣子编出的docker二进制发行包,未来了也不可能完全免费开放。目前docker已经推出了面向公司的企业级业务咨询、支持和培训。

三、使用docker目的以及使用场景
3.1 使用docker的目的

1、同一主机运行多台容器的简单轻量级建模方式。

2、职责的逻辑分离:使研发人员的研发环境,与生产部署环境达到一致。

3、具有快速高效的开发生命周期:缩短开发到生产的生命周期,使开发、测试、生产环境达到高度一致,并且都已容器的方式进行交付,避免了额外调试部署的时间开销。

4、面向服务架构:鼓励单个容器之运行单一服务,这就形成了一种分布式模型。避免服务之间相互影响,在定位出现的问题时,也变得简单。

3.2 docker的使用场景

1、使用docker进行容器化开发、测试、部署。

2、创建隔离运行环境。

3、搭建测试环境。

4、构建多用户的平台即服务(Paas)基础设施。

5、提供软件即服务(SaaS)应用程序。

6、高性能、超大规模的宿主机部署

四、docker基本介绍
4.1 docker服务的基本组成

docker client 客户端

docker deamon 守护进程

docker image 镜像 容器的基石保存了启动容器的各种条件

ps:镜像其实是由多个层来组成的,引导层,文件系统层,软件层,这些都是属于只读文件系统,也就是说多个文件系统共同组成,镜像也能相互叠加在一起.有子镜像和父镜像。

层叠只读文件系统 联合加载(union mount)

rootfs   根文件系统

bootfs 引导文件系统

4.2 Docker Registry 仓库

公有 Docker Hub https://hub.docker.com/

私有  自己搭建(后续会出博客)

4.3 Docker依赖的linux内核特性

Namespaces 命名空间 :

        编程语言

        封装 代码隔离

        操作系统

        进程资源的隔离

        进程,网络,文件系统....

        文章来源地址https://www.toymoban.com/news/detail-846252.html

        PID 进程隔离

        NET 管理网络接口

        IPC 管理跨进程通信的访问

        MNT 管理挂载点

        UTS (Unix Timesharing System)隔离内核和版本标示

Control groups(cgroups) 控制组:用来完成命名空间的隔离

        资源限制(如限制mem,超出oom)

        优先级设定(设定那个进程组使用更多资源)

        资源计量(计算进程组使用了多少资源,尤其是在计费系统中)

        资源控制(将进程组挂起,恢复)

4.4  docker容器的能力

        文件系统隔离:每个文件都有自己的root文件系统。

        进程隔离:每个容器都运行在自己的进程环境中。

        网络隔离:容器间的虚拟网络接口和IP地址都是分开的。

        资源隔离和分组:使用cgroups将cpu和内存之类的资源独立分配给每个docker容器。

        

到了这里,关于docker学习笔记 一-----容器介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【 Docker 容器详细介绍和说明】

    Docker 容器详细介绍和说明 Docker容器是什么? Docker容器是一种轻量级、可移植的软件打包和运行环境,它允许开发者将应用及其依赖以独立的单元进行分发和部署。每个容器都运行在一个隔离的环境中,具有自己的文件系统、网络空间和资源限制。容器与宿主机共享内核,但

    2024年03月15日
    浏览(40)
  • [Docker]二.Docker 镜像,仓库,容器介绍以及详解

    通俗来讲:镜像相当于VM虚拟机中的ios文件,容器相当于虚拟机系统,仓库相当于系统中的进程或者执行文件,容器是通过镜像创建的 Docker 镜像就是一个 Linux 的文件系统( Root FileSystem ),这个文件系统里面包含可以运行在 Linux 内核的程序以及相应的数据,这里要强调一下镜像的两

    2024年02月03日
    浏览(54)
  • Docker五部曲之一:容器术语介绍

    本文内容翻译自参考文献。 要理解容器术语,重要的是要精确地理解容器是什么。容器实际上是两个不同的东西。像普通的Linux程序一样,容器实际上有两种状态——休眠和运行。在休眠状态下,容器是保存在磁盘上的一个文件(或一组文件)。这称为容器镜像或容器存储库

    2024年01月16日
    浏览(47)
  • 【docker笔记】Docker容器数据卷

    卷就是目录或者文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性 卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此docker不会在容器删除是删除其挂载的数据卷

    2024年02月02日
    浏览(43)
  • 热门的容器技术:Docker 和 Kubernetes 介绍

    目录 一、什么是容器技术 二、Docker 介绍 三、Kubernetes介绍 四、Docker 和 Kubernetes的区别 容器技术指的是一种操作系统级的虚拟化技术,用于将应用程序及其依赖项打包成一个独立的、可移植的运行环境,称为容器。容器技术通过隔离应用程序之间的运行环境,使得每个容器在

    2024年02月03日
    浏览(48)
  • docker入门(七)—— 容器数据卷介绍及使用

    docker的理念回顾 : 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的! 就好比,你安装一个 MySQL,结果你把容器删了,就相当于删库跑路了,这TM也太扯了吧! 所以我们希望容器之间有可能可以共享数据,docker

    2024年04月15日
    浏览(34)
  • Docker笔记 容器的数据卷

    大家好 我是积极向上的湘锅锅💪💪💪 思考: Docker容器删除后,在容器中产生的数据还在吗? 答案是不在了,数据存放在容器中,如果将容器删除,数据也会被一并删除 Docker容器和外部机器可以直接交换文件吗? 答案是不行,因为外部机器与docker内部之间是不互通的,但

    2024年02月15日
    浏览(40)
  • Docker容器常用命令笔记分享

    Docker是一个开源的应用容器引擎,可以让开发者将应用程序及其依赖打包成一个可移植的容器,然后发布到任何支持Docker的机器上,实现应用程序在不同环境中的一致性运行。相比传统的虚拟化技术,Docker具有更轻量级、更快速、更高效的特点。使用Docker可以方便地创建、部

    2024年03月17日
    浏览(51)
  • docker笔记9:Docker-compose容器编排

    目录 1.是什么? 2. 能干嘛? 3.去哪下? 4.安装步骤  ​编辑 5.卸载步骤   6.Compose核心概念  6.1概念 6.2 Compose常用命令   7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 swagger测试 7.4上面成功了,有哪些问题? 7.5 使用Compose  7.5.1

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包