docker拾遗-之再入坑

最近重新学习docker,好久不用,什么都是忘得差不多了,每天地铁看看视频,记记笔记,重新学习docker。

docker简介

什么是容器?

  • 一种虚拟化的方案
  • 操作系统级别的虚拟化
  • 只能运行在相同或相似内核的操作系统
  • 依赖于linux内核特性:Namespace和Cgroups(Control Group)

linux容器 VS 虚拟机

使用的容量更小

什么是docker?

  • 将应用程序自动部署到容器
  • GO语言开源引擎
  • 2013 dotCloud
  • 基于Apache 2.0开源授权协议发行

docker的目标

  1. 提供简单轻量的建模方式
  2. 职责的逻辑分离
  3. 快速高效的开发生命周期
  4. 鼓励使用面向服务的架构

docker的使用场景

  1. 使用docker容器开发测试,部署服务
  2. 创建隔离的运行环境
  3. 搭建测试环境
  4. 构建多用户的平台即服务(PaaS)基础设施
  5. 提供软件即服务(SaaS)应用程序
  6. 高性能、超大规模的宿主机部署

Docker容器相关技术

docker依赖的linux内核特性

  • NameSpaces命名空间
  • Control group (Cgroups)控制组

Namespace命名空间

编程语言

​ 封装 -> 代码隔离

操作系统

​ 系统资源的隔离

​ 进程、网络、文件系统...

  • PID (Process ID) 进程隔离
  • NET (Network) 管理网络接口
  • IPC (InterProcess Communication) 管理跨进程通信的访问
  • MNT (Mount) 管理挂载点
  • UTS (Unix TimeSharing System) 隔离内核和版本标识

Control groups 控制组

  • 用来分配资源
  • 来源于google
  • Linux Kernel 2.6.24 @ 2007
  1. 资源限制
  2. 优先级设定
  3. 资源计量
  4. 资源控制

Docker容器的能力

  • 文件系统隔离: 每个容器的都有自己的root文件系统
  • 进程隔离: 每个容器都运行在自己的进程环境中
  • 网络隔离: 容器的虚拟网络接口和IP地址是分开的
  • 资源隔离和分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

将Coolstore微服务引入服务网格:第1部分 - 探索自动注入

随着业界走向云端原生微服务的幻灭之谷,我们最终明白分布式架构会带来更多的复杂性(奇怪吧?),服务网格可以帮助软化着陆,将一些复杂性从我们的应用程序中移出,并将它...

1255
来自专栏北京马哥教育

把docker镜像当作桌面系统来用

博主一直都很喜欢思考怎样管理装在自己电脑上的桌面系统,这篇算是前作能当主力,能入虚拟机,还能随时打包带走,Linux就是这么强大的后续探索吧。

900
来自专栏云计算D1net

使用Docker时应该避免这10 件事…

容器可以解决很多问题,并且具有诸多优势,当你投身其中时便会发现其奥妙所在。 第一:容器是不可变的 - 操作系统,库版本,配置,文件夹和应用程序都包装在容器内。 ...

3397
来自专栏编程坑太多

跟我一起学docker(13)--docker Machine的使用

2024
来自专栏企鹅号快讯

Golang 中的微服务-第二部分-Docker和go-micro

简介: Docker 和 go-micro Docker简介 随着云计算的到来和微服务的诞生,服务在部署的时候有更多的压力,但是一次一小段代码就产生了一些有趣的...

3415
来自专栏Java架构师学习

把项目迁移到Kubernetes上的5个小技巧

我们将在本文中提供5个诀窍帮你将项目迁移到Kubernetes上,这些诀窍来源于过去12个月中OpenFaas社区的经验。下文的内容与Kubernetes 1....

3738
来自专栏腾讯云容器服务团队的专栏

Deployment vs ReplicationController in Kubernetes

此文主要选择了两个最常用的 controller : Deployment 和 ReplicationController ,从各自功能,优缺点方面进行对比,...

2.5K0
来自专栏一个会写诗的程序员的博客

十分钟带你理解Kubernetes核心概念

本文将会简单介绍Kubernetes的核心概念。因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍。相反,我们会使用一些...

803
来自专栏运维前线

使用Helm将应用程序部署到IBM Cloud上的Kubernetes上

Helm是Kubernetes的包管理员。借助Helm,我们可以非常方便地将应用程序,工具和数据库(如MongoDB,PostgreSQL,WordPress和...

1945
来自专栏封碎

Android NFC简介 博客分类: Android android nfc 近场通信

近场通讯 (Near Filed Communication) 技术是一种近距离的高频无线通信技术, 通常距离是4 厘米或更短。 NFC 工作频率是 ...

822

扫码关注云+社区