Docker 面试题
一、基础必考题1. Docker 是什么核心解决什么问题Docker 是基于Go 语言开发的容器化引擎基于 Linux 内核的Namespace隔离、Cgroups资源限制、UnionFS镜像分层实现。核心价值一次构建、处处运行解决环境不一致、依赖冲突、部署繁琐、迁移困难的问题。2. Docker 和 虚拟机VM的核心区别维度Docker 容器虚拟机 VM底层共享宿主机内核独立 Guest OS启动速度秒级分钟级资源占用轻量几乎无额外开销重占用大量 CPU / 内存隔离性进程级隔离弱系统级隔离强镜像大小MB 级GB 级3. Docker 三大核心概念镜像Image只读模板分层存储容器的 “模板”容器Container镜像的运行实例可读写轻量独立进程仓库Registry存储 / 分发镜像Docker Hub、Harbor、Nexus4. 镜像和容器的区别镜像只读、分层、静态用于创建容器容器读写、动态、运行态是镜像的实例一个镜像可启动 N 个容器二、核心命令题口述 / 上机高频1. 写出常用 docker run 核心参数# 后台运行 端口映射 数据卷 命名 开机自启 docker run -d \ --name my容器 \ -p 宿主机端口:容器端口 \ -v 宿主机目录:容器目录 \ --restartalways \ 镜像名:标签-d后台运行-p端口映射桥接模式-v数据卷挂载持久化--name指定容器名--restartalways异常退出自动重启2. 进入运行中的容器execvsattach区别推荐docker exec -it 容器ID /bin/bash开启新终端退出容器不停止不推荐docker attach 容器ID进入容器原有终端退出会导致容器停止3. 停止 / 删除容器 / 镜像常用命令# 查看运行容器 docker ps # 查看所有容器含停止 docker ps -a # 优雅停止发送SIGTERM等待退出 docker stop 容器ID # 强制杀死SIGKILL立即停止 docker kill 容器ID # 删除停止的容器 docker rm 容器ID # 强制删除运行中容器 docker rm -f 容器ID # 删除镜像 docker rmi 镜像ID4. 查看容器日志、资源占用# 实时查看日志 docker logs -f 容器ID # 查看最近100行 docker logs --tail100 容器ID # 查看容器CPU/内存 docker stats 容器ID三、Docker 镜像 分层原理1. 镜像为什么分层UnionFS 作用镜像基于UnionFS联合文件系统分层存储、只读好处分层复用节省存储空间构建 / 拉取加速仅拉取变更层易维护、易回滚2. 镜像瘦身 / 优化的常用方法合并RUN指令减少镜像层数构建后清理缓存yum clean all、rm -rf /var/cache使用多阶段构建Multi-stage Build选用精简基础镜像alpine代替centos/ubuntu不安装无用依赖、删除临时文件四、Dockerfile 核心考点1. 常用 Dockerfile 指令FROM指定基础镜像必须第一条RUN构建镜像时执行命令创建层CMD容器启动默认命令可被命令行覆盖ENTRYPOINT容器启动固定命令不易被覆盖COPY复制本地文件到镜像仅复制ADD支持复制 自动解压压缩包 远程文件慎用WORKDIR设置工作目录EXPOSE声明暴露端口仅声明不发布ENV设置环境变量VOLUME声明匿名数据卷2. CMD 和 ENTRYPOINT 核心区别CMD可被docker run后面的命令覆盖ENTRYPOINT命令不会被覆盖run后面的参数会作为参数传递组合用法ENTRYPOINT固定命令 CMD传默认参数3. ADD 和 COPY 区别COPY仅本地文件复制安全简单推荐ADD额外支持自动解压.tar.gz、拉取远程 URL不推荐不安全4. 什么是多阶段构建将构建环境和运行环境分离第一阶段编译打包第二阶段仅复制运行包大幅减小最终镜像体积。五、容器数据持久化1. 容器默认数据为什么会丢失容器是可读写层删除容器后可读写层数据一并删除数据不持久化。2. Docker 三种持久化方式数据卷VolumeDocker 管理宿主机目录推荐跨平台、权限友好绑定挂载Bind Mount直接挂载宿主机指定目录tmpfs 挂载内存挂载重启丢失仅临时数据3. 数据卷核心命令bash运行# 创建数据卷 docker volume create 卷名 # 挂载数据卷 docker run -v 卷名:容器内目录 镜像 # 查看数据卷 docker volume ls六、Docker 网络模式1. Docker 4 种默认网络模式bridge默认独立网卡端口映射访问容器间可通信host共享宿主机网络无隔离性能最高none无网络完全隔离container共享另一个容器的网络栈2. bridge 模式原理Docker 创建虚拟网桥docker0容器分配独立 IP宿主机通过端口映射-p访问容器同一 bridge 下容器可通过容器名 / IP直接通信3. 容器间如何通信同 bridge 网络直接用容器名 / IP 通信自定义 bridgeDNS 解析推荐生产使用端口映射 宿主机 IP跨主机 / 外部访问七、底层原理1. Docker 隔离 限制依赖哪两个核心技术Namespace实现资源隔离PID、网络、挂载、主机名、IPC、用户Cgroups实现资源限制CPU、内存、磁盘 IO、带宽2. Namespace 隔离哪些资源PID进程 ID 隔离NET网络栈、网卡、端口隔离MNT文件系统挂载点隔离UTS主机名 / 域名隔离IPC信号量、消息队列隔离USER用户 / 用户组隔离3. Cgroups 作用限制容器使用的CPU 核心数、内存上限、磁盘 IO、网络带宽防止单个容器耗尽宿主机资源。4. Docker 为什么比虚拟机启动快容器共享宿主机内核无需启动完整操作系统仅启动业务进程无 Hypervisor、GuestOS 开销八、实战排查题场景题1. 容器启动失败 / 一直重启怎么排查看日志docker logs -f 容器ID检查端口冲突netstat -tulpn检查资源限制内存溢出、CPU 打满检查数据卷权限挂载目录无读写权限进入容器调试docker run --rm -it 镜像 /bin/bash手动启动2. 容器时区不对8 小时误差怎么解决运行时挂载时区-v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:roDockerfile 配置时区ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ /etc/timezone3. 如何部署 SpringBoot MySQL 多容器自定义 bridge 网络保证 DNS 解析MySQL 挂载数据卷持久化SpringBoot 连接地址用容器名而非localhost使用 Docker Compose 统一编排九、高频易混对比题docker stop vs docker killstop优雅退出SIGTERM → 等待 → SIGKILLkill强制立即杀死SIGKILL容器退出码常见含义0正常退出137OOM 内存溢出被内核杀死125Docker 命令错误126权限不足 / 无法执行127命令找不到docker save vs docker exportsave保存镜像保留分层 / 元数据export导出容器快照丢失分层信息十、面试一句话速记Docker Namespace 隔离 Cgroups 资源限制 UnionFS 分层镜像只读分层容器读写临时数据卷持久化CMD 可覆盖ENTRYPOINT 不覆盖bridge 默认网络host 共享网络排查三板斧logs→stats→exec进容器

相关新闻

全网最详细的渗透测试流程

全网最详细的渗透测试流程

经常有小伙伴问我。 为什么自己总是挖不到漏洞呢? 渗透到底是什么样的流程呢? 所以全网最详细的渗透测试流程来了!!! 全篇文章内容较长,请耐心观看! 渗透测试 渗透测试其实就是通过一些手段来找到网站,APP,网络服务,软件&#xff0c…

2026/7/4 16:43:15 阅读更多 →
网络安全新岗位,AI时代下网安会转型吗?

网络安全新岗位,AI时代下网安会转型吗?

想象一下: 你熬过无数个凌晨,读着NIST框架、分析恶意样本、部署防火墙,总算成为企业安全的中坚力量。 然后某天深夜,你刷到一则新闻:“网络安全专家集体失业!AI与自动化解决方案将消灭所有人工防御&#x…

2026/7/3 14:16:17 阅读更多 →
计算机毕业设计hadoop+spark+hive在线教育可视化 课程推荐系统 大数据毕业设计(源码+LW文档+PPT+讲解)

计算机毕业设计hadoop+spark+hive在线教育可视化 课程推荐系统 大数据毕业设计(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 技术范围:Sprin…

2026/7/4 19:06:45 阅读更多 →

最新新闻

思源宋体完整指南:免费开源字体如何提升你的中文设计品质

思源宋体完整指南:免费开源字体如何提升你的中文设计品质

思源宋体完整指南:免费开源字体如何提升你的中文设计品质 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为寻找高质量的中文字体而烦恼吗?思源宋体这款由A…

2026/7/6 6:12:49 阅读更多 →
华为云 ECS 上部署 Prometheus + Grafana 监控体系

华为云 ECS 上部署 Prometheus + Grafana 监控体系

ECS 规格: **ECS-Monitor** | 2vCPU / 4GiB(s6.medium.2) | Ubuntu 22.04 | 40GiB SSD | 1 | 跑 Prometheus Grafana Alertmanager | | **ECS-Target** | 2vCPU / 2GiB(s6.small.2) | Ubuntu 22.04 | 40GiB SSD | …

2026/7/6 6:10:48 阅读更多 →
如何用Zotero-Better-Notes实现笔记双向同步:告别手动复制粘贴的终极指南

如何用Zotero-Better-Notes实现笔记双向同步:告别手动复制粘贴的终极指南

如何用Zotero-Better-Notes实现笔记双向同步:告别手动复制粘贴的终极指南 【免费下载链接】zotero-better-notes Everything about note management. All in Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-better-notes 还在为Zotero和Obsidi…

2026/7/6 6:08:46 阅读更多 →
短剧出海中小企业主流广告素材监测工具(2026 最新,预算友好型)

短剧出海中小企业主流广告素材监测工具(2026 最新,预算友好型)

按中小团队适配度、短剧垂直能力、价格、国内访问稳定性分为 4 大类:短剧专精平价工具、通用高性价比工具、大厂专业工具(预算充足再选)、官方免费工具(基础备用)。一、短剧垂直专精(中小短剧团队首选&…

2026/7/6 6:06:46 阅读更多 →
Adobe软件激活新选择:5分钟掌握通用破解工具

Adobe软件激活新选择:5分钟掌握通用破解工具

Adobe软件激活新选择:5分钟掌握通用破解工具 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的高昂订阅费而犹豫吗&#xff…

2026/7/6 6:06:46 阅读更多 →
智能网盘直链解析:重新定义文件下载体验

智能网盘直链解析:重新定义文件下载体验

智能网盘直链解析:重新定义文件下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅雷云…

2026/7/6 6:02:46 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻