• 「Docker」面试全攻略:深入解析Docker技术栈


    1. 什么是Docker?

    Docker是一个容器化平台,用于构建、发布和管理应用程序的轻量级容器。

    2. Docker与虚拟机的区别是什么?

    虚拟机通过在物理硬件上模拟完整的操作系统运行,而Docker利用内核级别的虚拟化技术,实现了更高效的资源利用和快速的启动时间。

    3. Docker镜像和容器之间有何关系?

    Docker镜像是用于创建Docker容器的模板,包含了运行应用程序所需的所有文件和依赖项。容器是从镜像创建的运行实例。

    4. 如何构建自己的Docker镜像?

    可以使用Dockerfile来描述镜像的构建过程,其中包括基础镜像、安装依赖项、复制文件等步骤。然后使用命令docker build进行构建。

    5. 如何将容器连接到外部网络?

    可以使用Docker的网络功能,创建一个网络并为容器分配IP地址,以使其能够与外部网络进行通信。也可以使用端口映射将容器内部的端口映射到宿主机上。

    6. Docker的优势是什么?

    Docker具有轻量级、可移植、可扩展、快速启动、资源利用高等优点,可以简化应用程序的部署和管理。

    7. Dockerfile所用到的命令有哪些?

    在Dockerfile中,常用的命令用于构建和定制Docker镜像。以下是一些常见的Dockerfile命令及其用途:
    
    1. FROM:指定基础镜像,用来构建新镜像的起点。
       示例:`FROM ubuntu:latest`
    
    2. RUN:在容器中执行命令,用于安装软件包、运行脚本等操作。
       示例:`RUN apt-get update && apt-get install -y nginx`
    
    3. COPY:将文件从主机复制到容器中。
       示例:`COPY app.py /app`
    
    4. ADD:类似于COPY,但还支持URL和解压缩等功能。
       示例:`ADD https://example.com/file.tar.gz /data`
    
    5. WORKDIR:设置工作目录,后续命令都会在该目录下执行。
       示例:`WORKDIR /app`
    
    6. ENV:设置环境变量,可以在容器运行过程中被访问。
       示例:`ENV PORT=8080`
    
    7. EXPOSE:声明容器运行时监听的端口。
       示例:`EXPOSE 80`
    
    8. CMD:在容器启动后执行的命令,只能有一个CMD命令。
       示例:`CMD ["python", "app.py"]`
    
    9. ENTRYPOINT:在容器启动后执行的命令,可以与CMD结合使用。
       示例:`ENTRYPOINT ["python", "-u", "app.py"]`
    
    这些是常见的 Dockerfile 命令,可以根据实际需求和项目特性进行组合和使用。构建Docker镜像时,可以通过编写适当的Dockerfile来满足应用程序的需求,并定制化镜像。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    8. docker所用到的命令有哪些?

    Docker 是一种流行的容器化平台,以下是一些常用的 Docker 命令:
    
    1. 镜像相关命令:
       - `docker images`:查看本地所有的镜像。
       - `docker pull <镜像名>`:从 Docker 仓库中拉取指定镜像。
       - `docker push <镜像名>`:将本地镜像推送到 Docker 仓库。
       - `docker rmi <镜像名>`:删除指定的本地镜像。
    
    2. 容器相关命令:
       - `docker run <镜像名>`:创建并运行一个新的容器。
       - `docker ps`:列出正在运行的容器。
       - `docker stop <容器ID或容器名>`:停止指定的容器。
       - `docker start <容器ID或容器名>`:启动已停止的容器。
       - `docker restart <容器ID或容器名>`:重启容器。
       - `docker rm <容器ID或容器名>`:删除指定的容器。
    
    3. 日志和进入容器命令:
       - `docker logs <容器ID或容器名>`:查看容器的日志。
       - `docker exec -it <容器ID或容器名> <命令>`:在容器内执行指定的命令。
       - `docker attach <容器ID或容器名>`:附着到正在运行的容器上。
    
    4. 网络相关命令:
       - `docker network create <网络名称>`:创建一个自定义网络。
       - `docker network ls`:列出所有网络。
       - `docker network connect <网络名称> <容器ID或容器名>`:将容器连接到指定网络。
       - `docker network disconnect <网络名称> <容器ID或容器名>`:断开容器与指定网络的连接。
    
    这只是一些常用的 Docker 命令示例,Docker 提供了更多强大的功能和选项。您可以通过查阅 Docker 官方文档来获得更详细的信息和了解更多命令用法。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    springboot如何修改thymeleaf中默认的页面路径及默认的后缀名呢?
    vue页面缓存解决方案
    java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统
    Java注解与反射系列——利用反射进行数据自动填充(代替Mybatis-plus的自动填充)
    Compose的一些小Tips - 可组合项的绘制
    VLAN原理和配置,交换机创建vlan的多种方法、三种接口模式的作用和配置方法、Access、Trunk、Hybrid接口的特性以及配置方法和命令
    树莓派raspberry pi 4 SSH默认密码无法登录解决办法
    Oracle Install 19c@CentOS 7.6
    区间重叠问题
    数据技术前沿趋势、TiDB 产品方向、真实场景 Demo… 丨PingCAP DevCon 2022 产品技术论坛预览
  • 原文地址:https://blog.csdn.net/qq_42392981/article/details/132871250