Docker了解
Docker了解
1.Docker能做什么
:Docker能够解决虚拟机能够解决的问题,同时也能够解决虚拟机由于请求资源过高无法解决的问题。
*隔离应用依赖
*创建应用镜像并进行复制
*创建容易分发的即启即用的应用
*允许实例简单,快速的扩展
*测试应用并随后销毁他们
Docker的目标是创建软件程序可移植的轻量容器,让其可以在任何安装Docker的机器上运行,不考虑底层操作系统。
2.Docker提供资源和抽象
*镜像:类似于快照,轻量级,创建时可以在现有的基础上修改子镜像,或者直接运行修改镜像。
*容器:镜像中创建容器,是设计用来运行应用的,支持单线程,允许公开指定的端口。容器是短暂的一次性的。
*链接:容器启动时,分配的私有IP,并可以引用其他容器,进行容器间交互。
*数据卷:不受容器生命周期影响进行数据持久化,Docker提供工具分开数据和应用两部分。卷可以用来在容器间共享数据。
3.Docker如何实现功能
:Docker如何创建镜像、用它们创建容器、在需要时暴露端口和创造卷、通过链接将几个容器连接在一起?
Docker使用cgroups来提供容器隔离,而union文件系统用于保存镜像并使容器变得短暂
*Cgroups:限制Linux进程组的资源占用,为进程组制作PID,UTS,IPC, 网络,用户以及装载命名空间。
*union:文件系统装载在其他的文件系统上,结果就是一个分层的积累变化。
Docker允许在union文件系统中使用aufs、btrfs或设备映射(device mapper)
①镜像只是一个json,指定了从该镜像运行的容器的特性,union装载点保存在哪里,要公开什么端口等等。
每个镜像与一个union文件系统关联,每个docker的union文件系统都有一个上层。
②容器之所以是短暂的,是因为创建一个镜像,创建容器,Docker会创建一个空白的union文件系统加载在与该镜像关联的union文件系统上。
由于union文件系统是空白的,意味着没有变化会被应用到镜像文件系统上, 当你创建一些变化时,文件系统会体现出来。
当容器停止时,该容器的union文件系统会被丢弃。留下的是启动时的原始镜像文件系统。除非创建一个新镜像或者卷
③卷所做的是在容器内指定一个目录,以便于在union文件系统外保护它。卷基本与镜像相同,现在还指定了一些公开给宿主的端口。
深入浅出:http://www.infoq.com/cn/articles/docker-core-technology-preview/
Docker了解的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- Net Core下多种ORM框架特性及性能对比
在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...
- SVN服务器
什么是SVN服务器? 1.协助多人开发的代码管理器: 2.会记录代码是谁写的,并且可以回退到任意版本: 3.冲突解决: 4.升级(项目分支). SVN的搭建: 1.在服务器端下载SVN服务器,一个项目 ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet
上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...
- python随机图片验证码的生成
Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Im ...
- 一道JS 连续赋值运算的问题
原文链接:https://www.cnblogs.com/joesbell/p/6229423.html <script> var a = {n:1}; var b = a; a.x = ...
- Docker 使用教程
概括 Docker与传统虚拟机的区别 与传统虚拟机的区别 Docker的安装 的安装 Docker daemon , client , containerd 镜像与容器操作 容器运 ...
- 记一下flex弹性布局
flex弹性布局也越来越广泛的在我们代码中出现了,更加方便我们的布局.自己用了查,查了用,有些还是记不住,俗话说好脑子不如烂笔头,原来都是写在本子上的,很不幸的一次次的想翻的时候总是找不到,还是写博客 ...
- Android Weekly Notes Issue #286
December 3rd, 2017 Android Weekly Issue #286 本期文章包含如何通过踩坑来学习Kotlin,以及利用Kotlin的data class做MVVM状态保存,还包 ...
- rabbitmq(中间消息代理)在python中的使用
在之前的有关线程,进程的博客中,我们介绍了它们各自在同一个程序中的通信方法.但是不同程序,甚至不同编程语言所写的应用软件之间的通信,以前所介绍的线程.进程队列便不再适用了:此种情况便只能使用socke ...
- 【luogu2583】地铁间谍
https://www.luogu.org/problem/show?pid=2583 设在时刻i,车站j到结束最短需要等待f(i,j)分钟,得状态转移方程: f(i,j)=min{ f(i+ ...