docker简介
发布日期:2021-06-30 20:53:51 浏览次数:3 分类:技术文章

本文共 2110 字,大约阅读时间需要 7 分钟。

文章目录

docker简介

什么是容器? 标准化的软件单元

将软件打包成用于开发、运输和部署的标准化单元

容器是一个标准的软件单元,它打包了代码以及所有依赖项,引起应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。dockers容器镜像是一个轻量级、独立、可执行的软件包,其中包含运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。

容器镜像在运行时成为容器,在 Docker 容器的情况下,镜像在Docker Engine上运行时成为容器。可用于基于 Linux 和 Windows 的应用程序,容器化软件将始终运行相同,无论基础架构如何。

使用场景

做交付行业还是很适合用docker的,使用docker可以方便部署管理,配合shell脚本,方便快捷。

知乎网友:一个虚拟机上跑多个用户的应用,需要进行资源隔离、低消耗控制

docker的特点

优点:
  1. 启动快,资源占用小 , 资源利用高,快速构建标准化运行环境
  2. 创建分布式应用程序时快速交付和部署,更轻松的迁移和扩展,更简单的更新管理
缺点:

1、Docker 是基于 Linux 64bit 的,无法在 windows/unix 或 32bit 的 linux环境下使用

2、LXC 是基于 cgroup 等 linux kernel 功能的,因此 container 的 guest 系统只能是linux
3、隔离性相比 KVM 之类的虚拟化方案还是有些欠缺,所有 container 公用一部分的运行库
4、管理相对简单,主要是基于 namespace 隔离
5、cgroup 的 cpu 和 cpuset 提供的 cpu 功能相比 KVM 的等虚拟化方案相比难以度量( 所以 dotcloud 主要是按内存收费 )
6、ldocker 对 disk 的管理比较有限
7、container 随着用户进程的停止而销毁, container 中的 log 等用户数据不便收集

docker的概念

在这里插入图片描述

images:镜像

dockerfile:生成docker惊醒

container:镜像运行时 称为容器

docker registry:镜像仓库 存储镜像的地方

比较容器和虚拟机

容器和虚拟机具有相似的资源隔离和分配优势,但功能不同,因为容器虚拟的是操作系统而不是硬件。容器更便携,更高效。

img

img

容器:

容器是应用层的抽象,将代码和依赖项打包在一起。多个容器可以在同一台机器上运行,并与其他容器共享操作系统内核,每个容器作为用户空间中的独立进程运行。容器占用的空间比 VM 少(容器映像的大小通常为数十 MB),可以处理更多应用程序,并且需要更少的 VM 和操作系统。

虚拟机:

虚拟机 (VM) 是将一台服务器变成多台服务器的物理硬件的抽象。管理程序允许多个 VM 在一台机器上运行。每个 VM 都包含操作系统、应用程序、必要的二进制文件和库的完整副本占用数十 GB。VM 的启动速度也可能很慢。

容器和虚拟机结合一起

容器和虚拟机在一起使用为部署和管理应用程序提供了极大的灵活性

容器:针对程序、针对产品层面

虚拟机:针对机器、IP层面

容器对比虚拟机的优点

1、启动快比虚拟机 , 可以秒级启动

2、对资源占用小 , 宿主机上可运行千台容器
3、方便用户获取 , 分布 , 和更新应用镜像 , 指令简单 , 学习费用低
4、通过 Dockerfile 配置文件来灵活的自动创建和部署镜像 & 容器 , 提高工作效率
5、Docker 除了运行其中应用外 , 基本不消耗其他系统资源 , 保证应用性能同时 ,尽量减小系统

docker架构

Docker使用了传统的client-server架构模式。用户通过Docker client与Docker daemon建立通信,并将请求发送给后者。而Docker的后端是松耦合结构,不同模块各司其职,有机组合,完成用户的请求。

在这里插入图片描述

docker-daemon是docker架构中的主要用户接口。首先,它提供了api server用于接受来自docker client的请求,其后根据不同的请求分发给docker daemon的不用模块进行执行相应的工作。

Docker daemon是Docker最核心的后台进程,它负责响应来自Docker client的请求,然后将这些请求翻译成系统调用完成容器管理操作。该进程会在后台启动一个API Server,负责接收由Docker client发送的请求;接收到的请求将通过Dockerdaemon分发调度,再由具体的函数来执行请求。

Docker client是一个泛称,用来向Docker daemon发起请求,执行相应的容器管理操作。它既可以是命令行工具docker,也可以是任何遵循了Docker API的客户端。目前,社区中维护着的Docker client种类非常丰富,涵盖了包括C#(支持Windows)、Java、Go、Ruby、JavaScript等常用语言,甚至还有使用Angular库编写的WebUI格式的客户端,足以满足大多数用户的需求。

转载地址:https://liushiya.blog.csdn.net/article/details/117637889 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:K8S-kubeadm安装
下一篇:centos7中安装python3

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月26日 17时42分34秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

目标检测神经网络的发展历程(52 个目标检测模型) 2019-04-30
Boundary loss 损失函数 2019-04-30
神经网络调参实战(一)—— 训练更多次数 & tensorboard & finetune 2019-04-30
tensorflow使用tensorboard进行可视化 2019-04-30
神经网络调参实战(二)—— activation & initializer & optimizer 2019-04-30
凸优化 convex optimization 2019-04-30
数据库索引 & 为什么要对数据库建立索引 / 数据库建立索引为什么会加快查询速度 2019-04-30
IEEE与APA引用格式 2019-04-30
research gap 2019-04-30
pytorch训练cifar10数据集查看各个种类图片的准确率 2019-04-30
Python鼠标点击图片,获取点击点的像素坐标 2019-04-30
路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT)) 2019-04-30
神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼) 2019-04-30
RRT算法(快速拓展随机树)的Python实现 2019-04-30
路径规划(二) —— 轨迹优化(样条法) & 局部规划(人工势能场法) & 智能路径规划(生物启发(蚁群&RVO) & 强化学习) 2019-04-30
D*算法 2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code 2019-04-30
RESTful API 2019-04-30
优化算法(四)——粒子群优化算法(PSO) 2019-04-30