容器面试题

一、docker面试题

1、docker是什么,和虚拟机的区别是什么?

  • docker是一个基于容器技术开源平台,用于打包,分发,运行应用,容器提供轻量级,快速的虚拟环境

  • 区别

    • vm是整套的操作系统

    • docker是共享主机内核,资源消耗更低,启动的非常快

    • docker启动快

    • 占用资源少

    • 隔离性

    • 可移植性

2、docker的核心组件有哪些?

# Docker Engine:运行容器的引擎;

# Docker Image:容器镜像,包含运行环境和应用;

# Docker Container:容器,镜像运行后的实例;

# Dockerfile:构建镜像的配置文件;

# Docker Hub/Registry:镜像仓库,用于镜像的分发和存储;

# Docker Compose:编排多个容器服务的工具。

3、docker镜像和容器的区别是什么?

  • 镜像是只读的模版,类似与快照

  • 容器是运行镜像的实例,可以读写操作,是一个运行时环境

4、Dockerfile 是什么?常用的指令有哪些?

  • 是定义构建镜像的脚本文件
# from 基础镜像

# run 运行命令

# copy/add 复制文件

# expose 声明端口

5、如何查看本地的镜像和容器

# docker images

# docker ps 

6、Docker Volume 有什么作用?如何使用?

  • 用于主机和容器之间共享数据或者持久化数据的

7、如何暴露容器的中端口给主机

  • 通过使用-p 宿主机端口:容器端口来实现

8、简述 Docker Compose 的作用和基本结构?

  • 用于定义和运行多个容器的应用
version: "3"
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: root

9、镜像层(image layer)是什么?构建时如何复用?

  • 每条dockerfile指令都会生成一层,镜像是多层叠加使用的

  • 层可以被缓存复用。减少构建时间

  • RUN可以将多个命令写在一行上面,减少层数

10、Docker 有哪些网络模式?

  • 桥接模式,容器的模式网络模式

  • 主机网络,就是和主机公用网络

  • 自定义网络

11、如何优化 Dockerfile?

  • 使用轻量级别的镜像

  • 减少层数

  • 利用缓存机制

  • 清理中间文件

12、如何实现容器间的通信

  • 在同一个网络中创建容器,容器名即为主机名,可以互相通信

13、Docker 与 Kubernetes 的关系是什么?

  • docker提供容器运行环境

  • kubernetes是容器编排平台,可以管理多个docker容器部署

  • k8s可以使用docker作为容器运行时,或者使用containerd

14、docker compose和kuberenets

-docker compose是本地开发,小型部署的容器编排工具

  • kubernetes是面向生产环境,集群级别的容器编排平台

15、docker优缺点

  • 优点

    • 部署方便 搭建一个环境,安装一下,启动一下服务即可

    • 部署安全 因为开发环境和测试环境的话,版本都是统一的,在一个统一的环境中,就能解决

    • 隔离性好 一个机器上面,可以跑很多个服务,这些依赖的配置都是不同的,每一个容器相当于是一个隔离的环境

    • 快速回滚 就是可以快速的回滚到上一个版本

    • 成本低 之前的话就是需要购买一个服务器,容器就非常的轻便了

  • 缺点

    • 性能 一定程度的封装和隔离,降低了性能

虚拟机与容器跑一个httpd,nginx

  • 默认的情况下,httpd,nginx在一个虚拟机上面运行的话,因为会占用同一个端口80,会报错的

  • 但是容器不一样,因为容器隔离的是进程,共享宿主机的内核,每个服务(容器)分配独立的进程空间,也就相当每一个进程空间看成一个完整的操作系统

posted @ 2025-07-20 10:22  乔的港口  阅读(135)  评论(0)    收藏  举报