Docker总结及常见问题

网友投稿 957 2022-11-18

Docker总结及常见问题

Docker总结及常见问题

Docker总结及常见问题

Docker是什么?

Docker的核心思想是隔离,Docker本身并不是一个完整的运行环境,Docker是基于容器运行的,一个一个容器互不影响,在一个服务器上可以部署多个容器,因为容器本身的资源占用小,所以可以最大化的部署多个服务。容器化技术不是一个完整的操作系统。

Docker是一个CS结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。守护进程和客户端可以运行在同一台机器上。

Docker容器间是如何隔离的?

Linux NamespaceLinux 命名空间对全局操作系统资源进行了抽象,对于命名空间内的进程来说,他们拥有独立的资源实例,在命名空间内部的进程可以实现资源可见。对于命名空间外部的进程,则不可见,实现了资源的隔离。这种技术广泛的应用于容器技术里。

Namespace实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。对于宿主机来说,这些被“隔离”了的进程跟其他进程并没有区别,而容器化后的用户应用,依然还是宿主机上的一个普通进程,这就意味着这些因为虚拟化而带来的性能损耗都不存在。使用Namespace作为隔离手段的容器无需单独的Guest OS,使得容器额外的资源占用可忽略不计。

优势:“敏捷”和“高性能”是容器相较于虚拟机最大的优势。

劣势:是隔离不彻底

多容器间使用的还是同一宿主机os内核,Linux内核很多资源无法被Namespace,最典型的比如时间。若你的容器中的程序使用settimeofday(2)系统调用修改时间,整个宿主机的时间都会被随之修改,这并不符合用户预期

Docker与虚拟机的区别

1、传统虚拟机虚拟出一台计算机运行的全部硬件,就是一个完整的操作系统,然后在这个操作系统上安装和运行软件。2、容器的运行直接运行在宿主机中,容器本身是没有自己的内核的,也没有虚拟出硬件,因此相较于传统虚拟机会更加轻便。3、每个容器都是相互隔离的,每个容器都有属于自己的文件系统,互不影响。

如何在生产中监控Docker?

Docker提供docker stats和docker事件等工具来监控生产中的Docker。我们可以使用这些命令获取重要统计数据的报告。 Docker统计数据:当我们使用容器ID调用docker stats时,我们获得容器的CPU,内存使用情况等。它类似于Linux中的top命令。 Docker事件:Docker事件是一个命令,用于查看Docker守护程序中正在进行的活动流。一些常见的Docker事件是:attach,commit,die,detach,rename,destroy等。

什么是docker-compose?

说的直白一点,docker-compose就是一个编排同时管理多个容器的工具,与它配对使用的是一个docker-compose.yml文件,docker-compose命令必须在一个包含docker-compose.yml文件的目录中才能使用,且当下docker-compose命令只能管理当前目docker-compose.yml文件中所涉及的容器,安装在机器上的其他容器无法干扰。 docker-compose的大部分命令基本和docker的命令重合,他们唯一的区别是docker的命令能管理机器上所有的容器和镜像文件,而docker-compose只能管理当前docker-compose.yml文件所涉及的容器。

Docker镜像联合文件系统?

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。 特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

什么是Docker Hub?

DockerHub是一个由Docker公司运行和管理的基于云的存储库。它是一个在线存储库,Docker镜像可以由其他用户发布和使用。

Docker 安全么?

Docker 利用了 Linux 内核中很多安全特性来保证不同容器之间的隔离,并且通过签名机制来对镜像进行验证。大量生产环境的部署证明,Docker 虽然隔离性无法与虚拟机相比,但仍然具有极高的安全性。

Docker容器可扩展到多远?

诸如Google和Twitter之类的大型Web部署以及诸如Heroku和dotCloud之类的平台提供商都基于容器技术运行,并行运行的容器数以十万甚至数百万计。

Docker容器退出时是否会丢失数据?

当Dcoker容器退出时,不会丢失数据。应用程序写入磁盘的所有数据都会保留在其容器中,直到您明确删除该容器为止。即使在容器停止后,该容器的文件系统仍然存在。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用MarkDown快速书写技术博客并发布在及个人博客网站上
下一篇:JS 【详解】作用域
相关文章

 发表评论

暂时没有评论,来抢沙发吧~