docker面试题(八股文)

1. 什么是docker?


docker是一个容器化平台,它以容器的形式将你的应用程序及所有依赖项打包在一起,以确保你的应用程序在任何环境中无缝运行

2. docker和虚拟机的不同点在哪里?


docker不是虚拟化方法,它依赖于实际实现基于容器的虚拟化或操作系统级虚拟化的其他工具,为此docker最初使用LXC驱动程序,然后移动到libcontainer,现在重命名为runc。docker主要专注于在应用程序容器内自动部署应用程序,应用程序容器意在打包和运行单个服务,而系统容器则设计为运行多个进程,如虚拟机,因此docker被视为容器化系统上的容器管理或应用程序部署工具。

3. docker容器有几种状态?


有四种状态:运行,已暂停,重新启动,已退出

4. dockerfile中最常见的指令是什么


官方提供的dockerfile实例:http://github.com/CentOS/CentOS-Dockerfiles

FROM:指定基础镜像, LABEL:功能为镜像指定标签, RUN:运行指定的命令, CMD:容器启动时要运行的命令

5. dockerfile中的命令COPY和ADD命令有什么区别?


一般而言,虽然ADD和COPY在功能上类似,但是首选COPY。

因为它比ADD更易懂,COPY仅支持将本地文件复制到容器中,而ADD具有一些功能(如仅限本地的tar提取和远程url支持),这些功能并不是很明显,因此ADD最佳用途是将本地tar文件自动提取到镜像中,如ADD rootfs.tar.xz /

6. 什么是docker镜像?


docker镜像是docker容器的源代码,换句话说docker镜像用于创建容器,使用build命令创建镜像,并且在使用run启动时会生成容器,镜像存储在docker注册表中,registry.hub.docker.com,因为它们可能会变得非常大,镜像被设计为由其他镜像层组成,允许通过网络传输镜像是发送最少量的数据

7. 解释基本的docker使用工作流程是怎样的?


  1. 从dockerfile开始,dockerfile是镜像的源代码

  1. 创建dockerfile后可以构建它来创建容器的镜像,镜像只是源代码的编译版本

  1. 获得容器的镜像后,应使用注册表重新分发容器,注册表就像一个git存储库,可以推送和拉去镜像,接下来可以使用该镜像运行容器,在许多方面正在运行的容器和虚拟机非常相似

8. 如何在生产中监控docker


docker提供docker stats和docker事件等工具来监控生产中的docker,我们可以使用这些命令获取重要统计数据的报告。

docker统计数据:当我们使用容器ID调用docker stats时 我们可以获取容器的CPU,内存使用情况等,塔雷斯linux中的top命令

docker事件:docker事件是一个命令,用于查看docker守护程序中正在进行的活动流,一些常见的docker事件包括:attach, commit,die,detach,rename, destory等

9. docker如何在非linux系统中运行容器


通过添加到linux内核版本2.6.24的名称空间功能,可以实现容器的概念,容器将其ID添加到每个进程,并向每个系统调用添加新的访问控制检查,它由clone()系统调用访问,该调用允许创建先前全局命名空间的单独实例

10. 什么类型的应用程序无状态或有状态更适合docker容器?


最好为docker container创建无状态应用程序,我们可以从应用程序中创建一个容器,并从应用程序中取出可配置的状态参数,现在我们可以在生产环境和具有不同参数的QA环境中运行相同的容器,这有助于在不同场景中重用相同的镜像,另外,无状态应用程序比有状态应用程序更容易使用docker容器进行扩展。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是Docker?它的优缺点是什么? Docker是一种开源的容器化平台,可以在不同的平台上运行应用程序。它的优点包括快速构建、部署和扩展应用程序、更高的可移植性、更好的资源利用率和更好的安全性。缺点包括较高的学习曲线和性能损失。 2. Docker的架构是什么?怎么工作的? Docker的架构包括Docker客户端、Docker守护进程、Docker镜像和Docker容器。Docker客户端和守护进程可以运行在同一台机器上或者不同的机器上。Docker客户端通过Docker API与Docker守护进程进行通信,Docker守护进程管理Docker镜像和Docker容器。Docker镜像包含了应用程序运行所需的所有依赖和配置,Docker容器是基于Docker镜像运行的实例。 3. Docker镜像是什么?如何创建和使用? Docker镜像是一个只读的文件,包含了应用程序运行所需的所有依赖和配置。可以通过编写Dockerfile来创建Docker镜像,Dockerfile是一个文本文件,包含了一系列指令,用于构建Docker镜像。使用Docker镜像可以通过docker run命令创建Docker容器。 4. Docker容器是什么?如何创建和使用? Docker容器是基于Docker镜像运行的实例,包含了应用程序和其依赖的所有环境。可以通过docker run命令创建Docker容器,也可以通过docker create命令创建Docker容器并在以后启动。 5. Docker Compose是什么?如何使用? Docker Compose是一种工具,用于定义和运行多容器Docker应用程序。可以通过编写docker-compose.yml文件来定义Docker应用程序的服务、网络和卷。可以通过docker-compose up命令启动Docker应用程序。 6. Docker Swarm是什么?如何使用? Docker Swarm是Docker的官方容器编排工具,用于管理多个Docker容器。可以通过docker swarm init命令初始化Docker Swarm集群,通过docker node命令管理集群节点,通过docker service命令管理Docker服务。 7. Docker网络是什么?如何创建和使用? Docker网络是用于连接Docker容器的虚拟网络。可以通过docker network命令创建和管理Docker网络,可以通过--network参数将Docker容器连接到特定的Docker网络上。 8. Docker数据卷是什么?如何创建和使用? Docker数据卷是用于持久化存储Docker容器数据的一种机制。可以通过docker volume命令创建和管理Docker数据卷,可以通过-v参数将Docker容器挂载到特定的Docker数据卷上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值