Docker理解
近期一直在研究Docker,感悟颇深,和大家分享一下Docker 在云计算中的应用和Docker的原理。
Docker 用法https://yeasy.gitbooks.io/docker_practice/content/
- Docker 是什么?有哪些用途?
- https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html我的理解就是Docker提供简化版linux系统,它和宿主机使用同一内核 我们可以用
uname -a
去查看。 也就是说内核空间和宿主机相同,但是用户空间和宿主机不同,大家可以进入docker bash 看一下 里面也提供了类似Linux 根文件系统的结构,也有依赖库,一些可执行文件。我的理解就是Docker image 提供的容器就是一个根文件系统,类似chroot 方式进入这个文件系统,但是docker它提供了更强大的网络,分层机制。至于Docker 的用途很多,用于云计算,和web部署都十分方便,只需要提供一个自己做好的docker image就行了,其实就是一个根文件系统。docker run -it --rm test bash
bash-4.3# ls
bin etc lib mnt root sbin sys usr
dev home media proc run srv tmp var
- https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html我的理解就是Docker提供简化版linux系统,它和宿主机使用同一内核 我们可以用
Docker镜像与容器
Docker镜像是指从Docker hub上pull下来的image,当你run这个image的时候就形成了一个容器,容器是镜像的产生物,我们可以将容器的改动commit到镜像,否则容器内的改动不会影响镜像,也可以通过Dockerfile实现。Pull下来的docker 镜像放哪里了?
一般都放在/var/lib/docker/aufs/mnt里面,pull下来后就被解压,它是分层存储的,每次的commit都在不同的层。Docker 性能怎么样?
我试过11万连接的Websocket server 和 nginx server 都没有什么问题,docker也可以限制内存和cpu的使用量。Docker 性能限制问题
对于内核参数sysctl 配置,进入容器后发现根本就改不了,因为它挂载在一个只读分区上,方法就是run的时候加上–sysctl 和 –ulimit 参数或者就是加上–privileged 特权进入修改。主要限制就是文件描述符--ulimit nofile=500000:500000
即可解决,但是实际情况就是即使你设置再大 连接数量就只能是65535个,这里还有一个十分重要的内核参数net.ipv4.netfilter.ip_conntrack_max = 65536
这个默认是65536 这个意思说内核对连接进行跟踪,内核会建立相关结构去保存这些连接状态,把这个值改大一些就能解决65535限制。https://github.com/docker/docker/issues/29875
可通过运行时加–sysctl实现,但是它的改动也会造成宿主机也跟着被改,所以直接改宿主机也可以实现。
Docker理解的更多相关文章
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- Docker理解与使用(转)
2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业. 但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简单 ...
- Docker——理解好镜像和容器的关系
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 镜像也是 docker 的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态.前面我们介绍了 ...
- docker学习(三) - docker理解及命令
Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 Docker 镜像就是一个只读的模板. 例如:一个镜像可以包含一个完整的 ubunt ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- Docker部署SDN环境
2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...
- Docker And Swarm Mode(一)
(一)节点的创建和配置 前言 虽然工作中一直在用Docker和Docker Swarm,但是总感觉有点陌生,总想自己亲手来写写和配置Docker 容器相关的事情,这篇文章主要是参考了Los Tech ...
- 七、Java多人博客系统-2.0版本-docker部署
docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...
- docker 搭建 web 服务环境
docker容器虽然早就听说过,但是本人还真的没去用过,刚好看到相关的文章,就分享了下,有机会可以实践下...... 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都 ...
随机推荐
- [Web开发(1)] MyEclipse/Eclipse 使用Tomcat部署Web/Maven项目经典错误
1.Tomcat启动报错:server tomcat start within 45 seconds 问题原因:由于eclipse默认Tomcat设置是启动时间为45s,所以在45s内没有启动成功就会 ...
- HandlerThread学习
之前基本讲过Handler的一些知识了,我们今天学习下Google封装的一个实现线程通信的一个类HandlerThread 一.HandlerThread使用 @Override protected ...
- 四、MVC简介
一.高内聚.低耦合 大学的时候,上过一门叫<软件工程>的课程,课程中讲到了耦合,解耦等相关的词汇,当时很懵懂,不解其意. 耦合:是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影 ...
- Java项目打包方式分析
[TOC] 概述 在项目实践过程中,有个需求需要做一个引擎能执行指定jar包的指定main方法. 起初我们以一个简单的spring-boot项目进行测试,使用spring-boot-maven-plu ...
- TIDB 参数解释
地址:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb TiDB --store 用来指定 T ...
- Maple trees(最小覆盖圆)
Maple trees Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 注销/etc/passwd带来的系统登陆不上
今天在修改虚拟机密码上的时候,将/etc/passwd中root所在的哪行注销掉了,想象是注销了,root登陆时应该不要输入密码,结果是系统进度条走到最后的时候 进入不了系统了. 结果去普及了下/et ...
- AngularJS学习篇(二十二)
AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或 ...
- DOM Exception error
INDEX_SIZE_ERR code 1 索引是负值,或者超过了索引值 DOMSTRING_SIZE_ERR code 2 ...
- [DeeplearningAI笔记]ML strategy_2_4端到端学习
机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...