前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker容器的概念

docker容器的概念

作者头像
胡齐
发布2019-09-23 18:11:36
1.2K0
发布2019-09-23 18:11:36
举报
文章被收录于专栏:运维猫运维猫

容器化应用:

软件应用(例如数据库服务器或 HTTP 服务器)通常部署到虚拟 机或物理主机的运行有一组服务的操作系统中软件应用受运行环境限制,操作系统的任何更新或补丁都可能会 破坏该应用 对于开发应用的公司,对运行环境的任何维护都需要进行测试, 保证任何系统更新不会影响到应用 根据应用的复杂性,测试并不容易。而且更新通常要停止应用, 需在环境中启用高可用,增加了复杂性

系统管理员可选择使用容器,提供许多与虚拟机相同的优点,如 安全、存储和网络隔离等,但要求的资源要少得多,而且启动和 终止速度也更快 利用容器不仅能提升应用的效率、弹性和可重复利用性,也可加 强应用的移植能力。容器厂家有许多,如 Rocket、Drawbridge 和 LXC,但其中最大提供商是 Docker 以下为容器的一些主要优点:

- 硬件占用量少 - 环境隔离

- 快速部署

- 多环境部署

- 可重复利用

Docker 架构:

Docker 是一种容器实现方式,受到多家公司的支持,红帽在红帽 企业 Linux Atomic Host 平台中提供支持

Docker Hub 提供大量由社区开发的容器

Docker 采用 CS 架构:

- 客户端:docker 命令负责与服务器通信,通过 RESTful API 操作

- 服务器端:docker 服务作为守护进程运行,承担创建、运行和下 载容器镜像的任务

Docker 核心三元素:

镜像:image 是只读模板,其中包括应用的库和运行环境。镜像 用于创建容器。可以创建、更新或下载镜像

注册表:registry 存储镜像,也可称为镜像仓库,以满足公共或 私有的用途。知名的公共注册表为 Docker Hub,它存储了由社 区开发的多种镜像。也可在公司中创建私有注册表。本课程在一 台虚拟机上运行私有注册表(私有镜像仓库),其中存储了所有 必要的镜像以加快下载。在 RHEL 环境中,注册表为 docker- registry.service

容器:container 隔离的 namespace 环境,应用与共享同一 主机操作系统的其他应用相互隔离

容器和 Linux 内核:

容器由 Docker 从 Docker 格式的容器镜像创建,通过 Linux 内 核的若干功能相互隔离。其中包括:namespace:内核可将对所有进程可见的系统资源放在一个命名 空间中。在一个命名空间中,只有属于该命名空间的进程才能看 到这些资源。命名空间中的资源包括网络接口、进程 ID 列表、挂 载点、IPC 资源,以及系统本身的主机名称等cgroups:将进程和子进程的集合分入不同的组中,以管理和限 制它们消耗的资源。cgroup 对容器可以使用的系统资源加以限 制,防止一个容器占用主机上太多资源

SELinux:SELinux 是一种强制访问控制系统,防止容器互相影 响,同时防止主机受到容器的影响。容器进程作为受限 SELinux 类型运行,对主机系统资源具有有限的访问权限。此外,sVirt 利 用 SELinux 多类别安全 (MCS) 来防止容器互相影响。每个容器的 进程放入唯一的类别中,从而互相隔离

Docker 容器镜像:

Docker 中每个容器由一系列层(layer)组成,组成虚拟文件系 统。Docker 容器镜像具只读;添加的额外层会覆盖其内容,但不会更改。image 使用 UnionFS 文件系统

可以通过两种方式创建新镜像:

- 利用运行中的容器:使用镜像启动新的容器实例,在新层中对容器 进行更改。存储这一读写层将生成新的镜像。这是创建镜像的最简单 途径,但不是推荐的方法,因为镜像可能会因为临时文件和日志等不 必要的文件而变得非常大

- 使用 Dockerfile:可以通过一系列称为指令(command)的步骤从基础镜像构建容器镜像。每一指令在镜像上创建一个新层,以用于构建最终的容器镜像。这是构建镜像的建议方法。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档