当前位置: 首页 > news >正文

docker常见面试题

1.什么是docker

docker是一个容器化平台,类似于一个集装箱,集装箱与集装箱之间互不影响,docker平台就是一个软件集装箱平台,我们可以构建应用程序,将其所有的依赖打包到一个容器中,然后就很方便的可以在其他机器上运行,他的优点主要就是提供一个轻量级的可隔离性的,可移植性的运行环境。

2.docker容器的几种状态

created:已创建 running:运行中 paused:暂停
exited:已退出 restarting:重启中

3.为什么要使用docker

docker和vmware相比
容器技术:占用磁盘空间小一般为KB;启动速度快,秒级启动;直接运行于宿主机的内核上,不同容器共享同一个linux内核,并发性上来看一台宿主机可以启动上百个容器,而且资源利用率高
虚拟机技术:完全与他相反,它占用磁盘空间大,启动速度慢,运行于Hypervisior上,一台主机最多可运行几十个虚拟机,且资源利用率低。

4.dockerfile中最常见的指令

FROM 指定基础镜像,用于构建新镜像
RUN 在构建运行指定命令
COPY和ADD 用于将本地文件或目录复制到容器中
ENV 设置环境命令
CMD 指定容器创建时的默认命令
EXPOSE 声明容器运行时监听的而特定网络端口(暴露端口)

5.COPY和ADD区别

COPY 指令用于简单地复制本地文件或目录到容器中,它的主要功能是文件复制。
ADD 指令除了复制本地文件和目录外,还可以执行一些额外的功能,例如解压缩文件、从 URL 复制文件、并且支持自动解压缩。

6.dockerfile的优化思路

从编译速度上进行如下优化:充分利用缓存,使用国内的软件源
镜像体积做如下优化:删除无用缓存,卸载无用软件包,使用较小的基础镜像

7.容器间的通信用什么方式

容器间可以使用link方式使荣期间相互通信,容器名称,

8.docker的网络模式总共有几种

docker网络模式主要有4中分别是
host模式:容器和宿主机共享network namespace
container模式:容器和另一个容器共享network namespace ,kubernetes中的pod就是多个容器共享一个network namespace
**none模式:**容器有独立的network namespace,但并没有对其进行任何网络设置,如分配veth pair和网桥连接,配置ip等
bridge模式 默认为该模式

9.docker底层如何实现

docker的底层实现依赖于多个关键技术和组件,其中最重要的是linux容器技术
主要有:namespace(命名空间),通过命名来相互隔离,cgroups(控制组)来限制和分配容器资源,确保容器之间不会相互干扰,chroot限制进程文件系统访问的工具,OverlayFS允许多个文件系统层叠加在一起,适用于docker镜像和容器管理

10.docker swarm是什么

Docker Swarm是docker的本地群集。是一种容器编排和集群管理工具,用于协调和管理多个docker容器节点,来创建高可用性的,分布式的容器应用程序集群它将docker主机池转变为单个虚拟docker主机。Docjer Swarm
提供标准的docker API,任何已经与docker守护进程通信的工具都可以使用Swarm透明地扩展到多个主
Docker Swarm 与 Kubernetes 是两个常见的容器编排工具,它们都用于管理容器化应用程序的部署和运行。Swarm 在较小规模和较简单的部署场景中可能更容易上手,而 Kubernetes 则更适用于大规模、复杂的容器编排和管理。

11.如何在生产环境中监控docker

docker自己也提供了一些基本的监控功能,可以使用docker命令docker stats和docker top命令
也可以使用一些专用的容器监控工具cAdvisor容器监控,使用prometheus采集数据,结合grafana展示数据

12.harbor仓库是如何搭建的高可用的?

harbor是一个开源的容器镜像管理系统,如果要搭建高可用的harbor仓库可采用多个harbor共享存储卷的方式、提供复制规则,同步镜像

13.docker-registry迁移到harbor如何做的?

首先备份docker registry数据(例如使用docker-save、docker-compose)或者直接备份docker镜像存储目录
然后通过scp或者docker load在目标harbor中导入镜像

14.什么是docker-compose

docker-compose是一个编排工具,同时管理多个容器,与他配对的是一个docker-compose.yaml文件,docker-compose文件必须包在一个包含docker-compose。yaml文件目录下才能使用

15.Data Volume的特点

datavolume是目录或是文件,并不是没有格式化的磁盘(块设备)
容器可以读写volume中的数据
volume数据可以被永久保存,即使使用它的容器已经销毁

16.volume,bind和tmpfs三者的相同点和区别

相同点:无论选择哪种类型去使用,数据在容器内都是相同的,他被视为容器文件系统中的目录或单个文件
不同点:
卷(volume)存储在由docker管理的主机文件系统的一部分中(/var/log/docker/volumes/)非docker的进程不应该修改这部分文件系统,卷是在docker中保留数据的最佳方式
绑定挂载(bind mount)也就是把主机的本地目录挂载到容器中某个挂载点,可以存储在主机系统的任何位置,他们甚至可能是重要的系统文件或目录。docker主机或docker容器上的非docker进程可以随时修改他们。
tmpfs挂载(tmpfs mount) 仅仅存储在主机系统的内存中,而不会写入主机系统的文件系统。

相关文章:

docker常见面试题

1.什么是docker docker是一个容器化平台,类似于一个集装箱,集装箱与集装箱之间互不影响,docker平台就是一个软件集装箱平台,我们可以构建应用程序,将其所有的依赖打包到一个容器中,然后就很方便的可以在其…...

静态路由:配置和使用详解

文章目录 一、静态路由的配置和使用详解1. 配置要点1.1 点到点接口配置1.2 以太网接口配置 2. 默认路由3. 静态路由的配置命令4. 静态路由实现路由备份和负载分担 二、静态路由的优先级和比较1. 静态路由的优先级设置2. 静态路由与动态路由的比较2.1 静态路由优缺点2.2 动态路由…...

玩转Mysql系列 - 第15篇:详解视图

这是Mysql系列第15篇。 环境:mysql5.7.25,cmd命令中进行演示。 需求背景 电商公司领导说:给我统计一下:当月订单总金额、订单量、男女订单占比等信息,我们啪啦啪啦写了一堆很复杂的sql,然后发给领导。 …...

0065__git fetch, git pull, git merge, git rebase

git fetch, git pull, git merge, git rebase_git pull和merge_送你一朵小莲花的博客-CSDN博客...

AJAX学习笔记4解决乱码问题

AJAX学习笔记3练习_biubiubiu0706的博客-CSDN博客 在Tomcat10来说,AJAX GET或者POST接收响应都不存在乱码问题 对于Tomcat9来说 前端测试代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试A…...

【23种设计模式】享元模式【⭐】

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…...

语音信号的仿真原理

利用MATLAB对语音信号进行分析和处理&#xff0c;采集语音信号后&#xff0c;利用MATLAB软件 平台进行频谱分析&#xff1b;并对所采集的语音信号加入干扰噪声&#xff0c;对加入噪声的信号进行频 谱分析&#xff0c;设计合适的滤波器滤除噪声&#xff0c;恢复原信号。语音信…...

VLDB 2023 | CDSBen: 字节跳动 veDB 数据库存储系统性能测试模型

背景 随着业务爆炸式增长与云原生技术的日渐成熟&#xff0c;大量云原生分布式数据库产品如雨后春笋般涌现&#xff0c;其中一部分主打 OLTP 场景的分布式数据库强调的是从计算-存储分离架构获得弹性收益&#xff1b;对于业界各种计算-存储分离架构的数据库而言&#xff0c;怎么…...

crontab的配置参数和基础使用教程

crontab基本格式 crontab文件的基本格式如下: * * * * * command 这5个*代表: 第一个* :分钟(0-59)第二个* :小时(0-23)第三个* :一个月中的第几天(1-31)第四个* :月份(1-12)第五个* :一周中的第几天(0-6,其中0代表星期天) command代表要执行的命令。 crontab常用时间设置…...

基于Python开发的玛丽大冒险小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的玛丽冒险小游戏程序&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xf…...

K8S之使用yaml格式定义pod

mysql-pod.yaml # overView: # 1. web服务与db打包放在同一个pod中&#xff0c;本地通过localhost来访问&#xff0c;并附带存活性/可用性检测 # 2. 补充重启策略/镜像拉去策略 # 3. 对容器资源进行限制apiVersion: apps/v1 kind: Pod metadata:name: pub-oanamespace: hunte…...

SSH命令详解

本文转载于&#xff1a;https://blog.csdn.net/m0_60873746/article/details/130843325 SSH命令详解 SSH&#xff08;Secure Shell&#xff09;是一种用于安全登录远程计算机的网络协议。通过 SSH&#xff0c;可以在不受干扰的情况下&#xff0c;传输服务器操作系统和网络管理…...

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法 解决方法&#xff1a; 1、先检查以下mysql的端口状态 netstat -anp|grep mysql如果显示127.0.0.1:3306 则说明需要修改&#xff0c;若为: : :3306&#xff0c;则不用。 在**/etc/mysql/mysql.conf.d/mysqld.cnf**&am…...

Python中的日期和时间(一)datetime模块

Python处理时间的对象很多&#xff0c;常用的有time、datetime和calendar等。本文对常用的时间对象的使用进行学习。在开始学习具体的对象前&#xff0c;先学习几个计算机的时间概念。 UTC&#xff08;全球标准时间&#xff09;:是全球范围内计时的科学标准&#xff0c;它基于…...

qt触控板手势检测

主要检测双指上下滚动、左右滚动、双指放大、缩小。 内容解释看注释&#xff0c;代码在mac上经过测试无问题&#xff0c;windows未测试。 bool WBScreenShotDialog::event(QEvent *event) {if (event->type() QEvent::Wheel) { // 双指滚动QWheelEvent *wheel static_…...

数据库 Redis

todo QARedis里面的有序结合用什么数据结构实现&#xff1f; QA Redis里面的有序结合用什么数据结构实现&#xff1f;...

Linux之权限

目录 一、shell运行原理 二、权限 1、对人操作 2、对角色和文件操作 修改权限&#xff08;改属性&#xff09;&#xff1a; ①ugo- ②二进制数的表示 修改权限&#xff08;改人&#xff09;&#xff1a; 三、权限的相关问题 1、目录的权限 2、umask 3、粘滞位 一、s…...

【产线故障】线上接口请求过慢如何排查?

文章目录 前言一、内存使用过高导致CPU满载案例代码分析思路 二、出现了类似死循环导致cpu负载案例代码分析思路 三、死锁案例代码分析思路 前言 首先线上接口变慢&#xff0c;原因可能有很多&#xff0c;有可能是网络&#xff0c;有可能是慢 SQL&#xff0c;有可能是服务本身…...

Increment Selection 插件

Increment Selection 插件实现递增 初次使用 按下快捷键 Alt Shift 鼠标左键向下拖拽 向下拖拽之后&#xff0c;在输入一个数字&#xff0c;比如我这里输入了一个数字1 然后按下快捷键 Ctrl Shift ← 进行选中数字 然后按下快捷键 Ctrl Alt i 建自动递增。 然后鼠标随…...

LeetCode刷题笔记【26】:贪心算法专题-4(柠檬水找零、根据身高重建队列、用最少数量的箭引爆气球)

文章目录 前置知识860.柠檬水找零题目描述解题思路代码 406.根据身高重建队列题目描述解题思路代码 452. 用最少数量的箭引爆气球题目描述踩坑-进行模拟正确思路的贪心 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【23】&#xff1a;贪心算法专题-1&#x…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

PydanticAI快速入门示例

参考链接&#xff1a;https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...

路由基础-路由表

本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中&#xff0c;往往存在多个不同的IP网段&#xff0c;数据在不同的IP网段之间交互是需要借助三层设备的&#xff0c;这些设备具备路由能力&#xff0c;能够实现数据的跨网段转发。 路由是数据通信网络中最基…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...