Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1888157
  • 博文数量: 2460
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 24729
  • 用 户 组: 普通用户
  • 注册时间: 2020-11-26 14:30
个人简介

更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号

文章分类

全部博文(2460)

文章存档

2024年(310)

2023年(643)

2022年(693)

2021年(734)

2020年(80)

我的朋友

分类: LINUX

2022-08-29 15:21:08

  什么是Docker?它是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源,它是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机,本篇文章总结了一些Docker常见面试题,请看下文:

  Docker与虚拟机的区别是什么?

  虚拟机通过添加Hypervisor层(虚拟化中间层),虚拟出网卡、内存、CPU等虚拟硬件,再在其上建立虚拟机,每个虚拟机都有自己的系统内核。而Docker容器则是通过隔离(namesapce)的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CPU资源等进行控制(cgroup),最终让容器之间互不影响,容器无法影响宿主机。

  与虚拟机相比,容器资源损耗要少。同样的宿主机下,能够建立容器的数量要比虚拟机多

  但是,虚拟机的安全性要比容器稍好,而docker容器与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机产生影响。

  Docker的三大核心是什么?

  镜像:Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。

  容器:Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

  仓库:仓库注册服务器上往往存放着多个仓库,每个仓库中包含了多个镜像,每个镜像有不同标签(tag)。

  如何修改Docker的存储位置?

  默认情况下Docker的存放位置为:/var/lib/docker,可以通过命令查看具体位置:docker info | grep “Docker Root Dir”

  修改到其它目录:首先停掉Docker服务,systemctl stop docker,然后移动整个/var/lib/docker 目录到目的路径,mkdir -p /root/data/docker、mv /var/lib/docker /root/data/docker、ln -s /root/data/docker /var/lib/docker --快捷方式

  Docker在后台的标准运行过程是什么?

  当利用docker run来创建容器时, Docker在后台的标准运行过程是:

  检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;

  利用镜像创建并启动一个容器;

  分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;

  从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;

  分配一个地址池中的 IP 地址给容器;

  执行用户指定的应用程序,执行完毕后容器被终止运行;

  什么是Docker的数据卷?

  数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。

  如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

  容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

阅读(336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~