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 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

Docker 面试宝典的更多相关文章

  1. Java面试宝典(2018版)

    置顶 2018年11月10日 23:49:18 我要取一个响亮的昵称 阅读数:8893    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen ...

  2. 工作一年半被裁掉,机缘巧合拿到阿里P7offer,得亏我看过这份“突击”面试宝典

    前言 不论是校招还是社招都避免不了各种⾯试.笔试,如何去准备这些东⻄就显得格外重要.不论是笔试还是⾯试都是有章可循的,我这个"有章可循"说的意思只是说应对技术⾯试是可以提前准备,所 ...

  3. 【转】Java面试宝典2015版(绝对值得收藏超长版)(一)

    (转自:http://mp.weixin.qq.com/s?__biz=MjM5MTM0NjQ2MQ==&mid=206619070&idx=1&sn=fcb21001d442 ...

  4. .NET工程师面试宝典

    .Net工程师面试笔试宝典 传智播客.Net培训班内部资料 这套面试笔试宝典是传智播客在多年的教学和学生就业指导过程中积累下来的宝贵资料,大部分来自于学员从面试现场带过来的真实笔试面试题,覆盖了主流的 ...

  5. java面试宝典(蓝桥学院)

    Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...

  6. Java面试宝典2015版

    这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试.由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完 ...

  7. Android高薪之路-Android程序员面试宝典

    Android高薪之路-Android程序员面试宝典

  8. Java面试宝典2013版(超长版)

    一. Java基础部分......................................................................................... ...

  9. 【Android】面试宝典

    Android面试 1. 内容介绍................................................................................... ...

随机推荐

  1. [.NET大牛之路 006] 了解 Roslyn 编译器

    .NET大牛之路 • 王亮@精致码农 • 2021.07.09 维基百科对编译器的解释是:编译器是一种程序,它将某种编程语言编写的源代码(原始语言)转换成另一种编程语言(目标语言).编译是从源代码(通 ...

  2. 8.7考试总结(NOIP模拟)[Smooth·Six·Walker]

    前言 踩了挺多以前没踩过的坑... T1 一开始是打了一个 60pts 的 DFS ,在与暴力拍了几组数据保证正确性之后, 突然想到 BFS 可能会更快一些,然后就又码了一个 BFS,又和 DFS 拍 ...

  3. JS基础-数据类型判断typeof、instanceof、Object.prototype.toString

    typeof用在基本数据类型和函数时,返回其对应类型的描述,对于引用类型都返回为object. instanceof无法判断基本数据类型,对于引用类型数据,返回其其对应类型. Object.proto ...

  4. cs派生msf shell

    msf5 > use exploit/multi/handler [*] Using configured payload windows/meterpreter/reverse_http ms ...

  5. 985硕艰难转行Android之路 加面经分享

    个人情况介绍 本人为某末流985工科硕士,说来令人感慨,我的考研之路异常曲折,每次都觉得自己能十拿九稳,结果每次都阴差阳错,失之交臂,第一次因为那年目标院校大幅度提升初试线,导致差一分未过线,第二次换 ...

  6. 说实话,Android开发月薪3W,谁不酸呢?

    近期有个网友在某匿名区晒字节跳动Offfer,毕业一年月薪3W,引发众多读者羡慕,纷纷留言酸了.酸了.但进大厂的要求还是蛮高的,需要在技术实力上有一定的积累,今天给大家分享一份高质量笔记, 助力大家技 ...

  7. CentOS帮助类语法

    目录 一.man获取帮助信息 二.help获得shell内置命令的帮助信息 三.history查看所有命令历史 补充:Linux常用快捷键 一.man获取帮助信息 基本语法:man [命令或配置文件] ...

  8. openstack June all-in-one 安装手册

    by lt,hyc 1.安全规范 表1:openstack用户和密码值设置 用户名 含义  本文的设置值 Admin openstack管理员用户 ADMIN_PASS Keystone openst ...

  9. 树莓派远程连接工具VNC使用教程

    树莓派远程连接工具VNC使用教程 背景故事 树莓派作为一款迷你小主机,大部分的使用场景都会用到远程调试,远程调试用到最多的方式一般就是VNC和SSH,VNC是远程桌面型的远程方式,简单来说就是用Win ...

  10. Redis-03-集群

    集群介绍 Redis Cluster 是 redis 的分布式解决方案, 在3.0版本正式推出,当遇到单机.内存.并发.流量等瓶颈时,可以采用Cluster架构方案达到负载均衡目的 Redis Clu ...