Docker 面试宝典

作者: 小菠萝测试笔记

Docker 是什么?

  • 是实现容器技术的一种工具
  • 是一个开源的应用容器引擎
  • 使用 C/S 架构模式,通过远程API 来管理
  • 可以打包一个应用及依赖包到一个轻量级、可移植的容器中 容器是什么?
  • 对应用软件和依赖包进行标准打包
  • 应用或服务之间相互隔离,但又共享一个 OS
  • 可以打包运行在不同的系统上 为什么会出现容器?

为了解决单机部署应用和虚拟化的局限性而诞生 虚拟化是什么?

  • 可以理解成虚拟机技术
  • 一个主机可以部署多个虚拟机,每个虚拟机又可以部署多个应用
  • 对于主机来说,虚拟机就是一个普通文件 虚拟化的缺点是什么?
  • 资源占用多:每个虚拟机都是完整的操作系统,需要给它分配大量系统资源
  • 冗余步骤多:一个完整的操作系统,一些系统级别的步骤无法避免,比如用户登录
  • 启动慢:启动操作系统需要多久,启动虚拟机就要多久 Docker 有什么优势?
  • 资源占用少:每个容器都共享主机的资源,容器需要多少就用多少
  • 启动快:一条命令即可将容器启动,而容器启动时一般会将服务或应用一并启动 Docker 和 虚拟化的区别?
|  比较点   |                    容器                     |                      VM                       |
|--------|-------------------------------------------|-----------------------------------------------|
| **隔离** | **应用程序层**的抽象,将代码和依赖项打包在一起**【容器是应用层面的隔离】** | 将一台服务器转变为多台服务器的**物理硬件**的抽象**【虚拟化是物理资源层面的隔离】** |
| OS     | 多个容器可以在同一台计算机上运行,并与其他容器**共享OS内核**         | 也允许多个VM在单台计算机上运行,但需要启动**单独的虚拟机 OS**           |
| 资源共享   | 仅有一个物理机的OS,多个容器共享物理机的资源                   | 多个OS(物理机一个OS,每个 VM 一个 OS),均独享资源               |
| 运行数量   | 一台物理机可以运行数**百**个容器                        | 一台物理机最多可以运行**十来个**虚拟机                         |
| 大小     | 容器镜像的大小通常为几十 MB                           | 包含操作系统、二进制文件、库,至少也要几个 GB                      |
| 启动速度   | 可以在数秒内完成启动                                | 和物理机启动时间一样慢,可能要几分钟                            |
|        | 可以处理更多的应用程序,消耗的资源比 VM 少                   |                                               |
|        | 每个容器在用户空间中作为隔离的进程运行                       |                                               |

Docker 容器有几种在状态?

  • starting 运行状态
  • Exited 退出状态
  • Paused 暂停状态
  • healthy 健康状态
  • unhealthy 非健康状态 什么是仓库?
  • 存放镜像文件的地方,比如 DockerHub,可以将自己的镜像上传上去
  • 不同镜像可以有不同的标签
  • 主机可以从仓库下载镜像 什么是镜像?
  • 创建容器的模板
  • 同一个镜像可以创建多个不同的容器 什么是容器?
  • 通过镜像生成的运行实例
  • 不同容器之间是相互隔离,独立运行的
  • 通常一个容器就是一个应用或一个服务,也是们常说的微服务 仓库、镜像、容器的关系是?

仓库存放镜像,主机通过仓库下载镜像,通过镜像创建容器 有什么常用的 Docker 命令?

  • docker pull 拉取镜像
  • docker create 创建容器
  • docker rm 删除容器
  • docker ps 列出正在运行的容器列表
  • docker run 创建容器并运行指定命令
  • docker start 启动容器
  • docker stop 停止运行容器
  • docker restart 重启容器
  • docker rm 删除容器
  • docker exec 容器执行指定命令
  • docker rmi 删除镜像 如何把主机的东西拷贝到容器内部?

通过 docker cp 命令即可,还能把容器内部内容拷贝到主机 进入容器的方法有哪些?

通过 docker exec 进入容器内部 如何让容器随着 Docker 服务启动而自动启动?

  • 创建容器,加上 –restart=always 参数
  • 创建容器,通过修改容器配置文件的 RestartPolicy 参数值
  • 创建容器,使用 docker update 命令更新容器的 –restart 参数值 如何指定容器的端口映射?
  • 创建容器,通过 -p 来指定端口映射
  • 创建容器,通过修改容器的配置文件来指定端口映射 如何查看官方镜像服务的默认端口是什么?
  • 可以通过 docker inspect 查看镜像信息,然后找到端口映射一栏
  • 也可以先用该镜像创建一个容器并运行,通过 docker ps 查看运行端口是什么 如何修改容器的端口映射?
  • 删除容器,重新创建容器,并指定端口映射
  • 通过容器配置文件修改端口映射
  • 通过 docker commit 将容器构建为一个全新的镜像,然后再通过该镜像创建新的容器,并指定端口映射 如何指定容器的目录映射?
  • 创建容器,通过 -v 来指定目录映射
  • 创建容器,通过修改容器的配置文件来指定目录映射 如何修改容器的目录映射?
  • 删除容器,重新创建容器,并指定目录映射
  • 通过容器配置文件修改目录映射
  • 通过 docker commit 将容器构建为一个全新的镜像,然后再通过该镜像创建新的容器,并指定目录映射 K8S 是什么? Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能
  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

    原文创作:小菠萝测试笔记

    原文链接:https://www.cnblogs.com/poloyy/p/14140751.html

文章列表

更多推荐

更多
  • Docker高级-十五、使用亚马逊 EC2 创建 Amazon EC2 实例,创建密钥对,启动 Amazon EC2 实例,连接到 Amazon EC2 实例,查找公共 IP 地址,查找公共 DNS,添加默认安全组,停止 Amazon EC2 实例,更改实例类型,摘要, 亚马逊网
    Apache CN

  • Docker高级-十三、使用 Apache Solr 设置环境,启动 Apache Solr 服务器的 Docker 容器,启动交互式 Shell,登录 Solr 管理控制台,创建核心索引,加载样本数据,在 Solr 管理控制台中查询 Apache Solr,使用 REST API 客户端
    Apache CN

  • Docker高级-十四、使用 Apache Spark 设置环境,运行 CDH 的 Docker 容器,以纱线集群模式运行 Apache Spark 作业,在 yarnclient 模式下运行 Apache Spark 作业,运行 Apache Spark Shell,摘要,Apache S
    Apache CN

  • Docker高级-十一、使用 Apache Sqoop 设置环境,启动 Docker 容器,启动交互式终端,创建 MySQL 表,将 MySQL JDBC Jar 添加到 Sqoop 类路径,设置 JAVA_HOME 环境变量,配置 Apache Hadoop,用 Sqoop 将 MySQL
    Apache CN

  • Docker高级-十二、使用 ApacheKafka 设置环境,为 Apache Kafka 启动 Docker 容器,查找 IP 地址,列出 Kafka 的日志,创造一个 Kafka 主题,启动 Kafka 制作人,启动 Kafka 消费者,生产和消费消息,停止和移除 Docker 容器
    Apache CN

  • Docker高级-八、使用 Apache Hadoop 设置环境,启动 Hadoop,启动交互式 Shell,为 MapReduce 字数统计应用创建输入文件,运行 MapReduce 字数统计应用,停止 Hadoop Docker 容器,使用 CDH 坞站映像,摘要,Apache Hado
    Apache CN

  • Docker高级-九、使用 Apache Hive 设置环境,正在启动 Apache Hive,连接到直线 CLI 外壳,连接到 HiveServer2,创建配置单元表,将数据加载到配置单元表中,查询配置单元表,停止 Apache 蜂房,摘要,Apache Hive 是用于存储、管理和查
    Apache CN

  • Docker高级-十、使用 Apache HBase 设置环境,从 CDH 开始,启动交互式外壳,启动 HBase Shell,创建 HBase 表,列出 HBase 表,获取单个表格行,获取单行列,扫描表格,阻止 CDH,摘要,Apache HBase 是 Apache Hadoop 数
    Apache CN

  • Docker高级-六、使用 Apache Cassandra 设置环境,启动 Apache Cassandra,启动 TTY,连接到 CQL Shell,创建密钥空间,更改密钥空间,使用密钥空间,创建表格,添加表格数据,查询表,从表格中删除,截断表格,放下一张桌子,删除一个键空间,退出 CQL 壳
    Apache CN

  • Docker高级-七、使用 Couchbase 服务器 设置环境,启动 Couchbase,访问 Couchbase Web 控制台,配置 Couchbase 服务器群集,添加文档,启动交互式终端,运行 Couchbase CLI 工具,停止 Couchbase 服务器和容器,摘要,Couc
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多