• Docker常见面试题整理


    Win7 Docker环境搭建查看:Win7 Docker环境搭建
    MacOS使用docker安装nginx查看:MacOS使用docker安装nginx

    1. Docker 是什么?它解决了什么问题?

    Docker 是一种容器化平台,允许开发者打包应用程序及其依赖项到一个可移植的容器中,然后发布到任何支持 Docker 的环境中运行。
    Docker 解决了传统虚拟化环境中应用部署和运行时的依赖、配置、环境一致性等问题,提供了更轻量、更快速的应用部署和扩展方案。

    2. Docker 和虚拟机(VM)的区别是什么?

    Docker 使用容器技术,而虚拟机使用完整的操作系统虚拟化。
    Docker 容器共享主机操作系统的内核,因此更加轻量和快速,启动时间通常在秒级别。
    虚拟机则需要独立的操作系统实例,占用更多资源和启动时间较长。

    3、Docker三个核心概念

    Docker的镜像容器仓库是Docker技术中的三个核心概念:

    • 镜像(mnage) :镜像是一个只读的模板,它包含了运行应用程序所需的环境和文件。例如,一个镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了Apache或用户需要的其它应用程序。镜像可以用来创建Docker容器。
    • 容器 (Container) :容器是从镜像创建的运行实例。它可以被启动、停止、删除,每个容器都是相互隔离的、保证安全的平台,可以看作是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
    • 仓库 (Repository) :仓库是存放所有的镜像文件的场所。Docker Hub是一个公共仓库,供用户下载和存储镜像。用户也可以在本地网络内创建一个私有仓库。

    4、如何构建一个 Docker 镜像?

    创建一个 Dockerfile,定义镜像的内容和环境。
    使用 Docker CLI 中的 docker build 命令来构建镜像,例如:docker build -t myapp:1.0
    Dockerfile 中包括指令如 FROM(基础镜像)、RUN(运行命令)、COPY(复制文件)、CMD(容器启动命令)等。

    5、如何将一个 Docker 容器连接到多个网络?

    可以使用 Docker 网络命令(docker network connect)将容器连接到多个自定义网络。
    默认情况下,Docker 容器连接到默认的桥接网络(bridge network),但也可以创建自定义网络,并将容器连接到这些网络。

    6、Docker Compose 是什么?

    Docker Compose是一个用于定义和运行多个Docker容器的工具。它使用YAML文件来配置应用程序的服务,并允许通过一个命令来启动、停止和重启应用中的所有服务。

    Docker Compose的主要作用是简化容器的管理和部署。它使得多个容器能够以正确的顺序和依赖关系启动,并确保它们在运行时可以相互通信。这使得开发人员可以更容易地处理复杂的Docker环境,尤其是在需要多个容器协同工作的场景下。

    使用Docker Compose的场景包括但不限于以下情况:

    • 需要构建和运行多个容器的应用程序,例如Web应用、数据库和缓存等
    • 需要在不同环境(如开发、测试、生产》中部署相同应用程序,但需要配置
    • 不同的容器数量或镜像版本。需要快速启动和停止应用程序,例如在开发或测试过程中。

    总之,Docker Compose是一个强大的工具,可以帮助开发人员和管理员更好地管理和部署Docker容器化的应用程序

    7、如何实现 Docker 容器的持久化存储?

    Docker 数据卷:是用于持久化存储容器中数据的目录或文件。
    它允许容器之间或容器与主机之间共享数据,以及在容器重启时保持数据的持久性。

    使用 Docker 数据卷(Volumes)或者绑定挂载(Bind Mounts)来实现容器中数据的持久化存储。数据卷是 Docker 管理的一部分,而绑定挂载直接将主机文件系统的路径挂载到容器中。

    8、如何查看 Docker 容器的日志?

    使用 docker logs 命令来查看指定容器的日志,例如:docker logs mycontainer
    可以通过 -f 参数实时跟踪日志输出,类似于 tail -f 的功能。

  • 相关阅读:
    Allegro172版本Shape避让方形盘不出现弧形操作指导
    小型气象站数据采集网关准确监测雨量和风速
    WebMagic抓取医院科室,医生信息实战及踩坑
    Java架构师必备基本功需求调研和分析
    SpringBoot 22 Swagger配置扫描接口和开关、过滤url、根据环境决定使用
    【ACM学习】【STL】顺序容器的基本功能
    【luogu CF1286E】Fedya the Potter Strikes Back(字符串)(KMP)(势能分析)(线段树)
    MySQL高级:(十二)MySQL事务日志
    爬虫基础入门理论篇(下)
    Node.js:pnpm - 速度快、节省磁盘空间的软件包管理器
  • 原文地址:https://blog.csdn.net/weixin_47061482/article/details/139881293