Docker面试高频题及实战答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Docker面试高频题及实战答案

一、基础概念题(入门必问)

什么是Docker?它和虚拟机的核心区别是什么?

答案:Docker是基于容器技术的开源应用打包、分发、运行平台,能将应用及依赖打包成轻量级、可移植的容器,在任何支持Docker的环境中一致运行。

核心区别:虚拟机(VM)需模拟完整操作系统(含内核),资源占用高、启动慢;Docker容器共享宿主机内核,仅封装应用及依赖,启动秒级、资源占用低,且移植性更强(“一次构建,到处运行”)。

Docker的核心组件有哪些?各自作用是什么?

答案:核心组件包括3个:

镜像(Image):容器的模板,包含运行应用所需的代码、依赖、配置等,只读不可修改(类似ISO镜像);

容器(Container):镜像的运行实例,是可读写的隔离环境,应用实际运行在容器中;

仓库(Repository):存储和分发镜像的平台(如DockerHub、私有仓库),类似代码仓库Git。

Docker镜像和容器的关系是什么?

答案:镜像是容器的“静态模板”,容器是镜像的“动态实例”。可以理解为:镜像=类,容器=对象;通过dockerrun镜像名命令,基于镜像创建并启动容器,一个镜像可创建多个独立容器。

二、实操命令题(考察动手能力)

常用的Docker镜像操作命令有哪些?(至少5个)

答案:

dockerpull镜像名:标签:从仓库拉取镜像(如dockerpullnginx:1.24);

dockerimages:查看本地所有镜像;

dockerrmi镜像ID/镜像名:删除本地镜像(需先停止依赖该镜像的容器);

dockerbuild-t镜像名:标签Dockerfile路径:通过Dockerfile构建镜像;

dockertag原镜像名:标签新镜像名:标签:给镜像打标签(便于推送仓库);

dockersave-o文件名.tar镜像名:将镜像导出为本地文件;

dockerload-i文件名.tar:从本地文件导入镜像。

如何创建、启动、停止、删除Docker容器?

答案:

创建并启动:dockerrun-d--name容器名-p宿主端口:容器端口镜像名(-d后台运行,--name指定容器名,-p端口映射);

启动已停止容器:dockerstart容器名/容器ID;

停止运行中容器:dockerstop容器名/容器ID(优雅停止),强制停止用dockerkill容器名;

删除容器:dockerrm容器名/容器ID(需先停止容器),强制删除运行中容器用dockerrm-f容器名;

查看运行中容器:dockerps,查看所有容器(含停止):dockerps-a。

如何进入正在运行的Docker容器?有几种方式?

答案:两种常用方式:

dockerexec-it容器名/容器ID/bin/bash(推荐,-it交互式终端,退出容器不影响运行);

dockerattach容器名/容器ID(直接附着到容器终端,退出会导致容器停止,不推荐生产使用);

补充:若容器内无bash,可尝试/bin/sh(如alpine镜像)。

三、进阶原理题(考察深度理解)

Docker的隔离性是如何实现的?依赖Linux哪些内核特性?

答案:Docker的隔离性基于Linux内核的三大核心技术:

Namespace(命名空间):实现资源隔离,包括PID(进程隔离)、NET(网络隔离)、Mount(文件系统隔离)、IPC(进程间通信隔离)、User(用户隔离)、UTS(主机名隔离),让容器内进程误以为自己是“独立主机”;

Cgroups(控制组):实现资源限制,限制容器对CPU、内存、磁盘IO、网络带宽等资源的使用上限,避免单个容器占用过多宿主机资源;

UnionFS(联合文件系统):实现镜像的分层存储,镜像由多个只读层叠加而成,容器启动时在最上层添加可写层,保证镜像的只读性和容器的可写性,同时节省存储空间(多层共享)。

Docker镜像的分层结构是什么意思?有什么优势?

答案:Docker镜像采用分层存储(基于UnionFS),每个指令(如FROM、RUN、COPY)在构建时都会生成一个独立的只读层,所有层叠加形成最终镜像。

优势:

复用性:不同镜像可共享相同底层层(如多个镜像基于同一Ubuntu基础镜像),减少存储空间占用;

增量构建:修改镜像时仅重新构建变更的层,无需全量重建,提升构建效率;

可追溯性:每一层对应Dockerfile中的一条指令,便于排查构建问题。

Docker容器的网络模式有哪些?各自适用场景是什么?

答案:D

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档