目录

1.什么是docker?什么是docker镜像?

2.docker与虚拟机有何不同?docker常用命令?docker使用流程?

3.什么是docker容器?docker容器有几种状态?docker容器内部机制?容器与主机之间的数据拷贝?启动容器并挂在目录?

4.Dockerfile中最常见的指令是什么?Dockerfile中的命令COPY和ADD命令有什么区别?

(1)常见指令:FROM + RUN + CMD + WORKDIR + ONBUILD + VOLUME + EXPOSE + LABEL与MAINTAINER + CPOY/ADD

(2)COPY与ADD的区别: COPY:直接拷贝;  ADD:拷贝+解压功能

5.如何在生产中监控docker?

6.docker如何在非Linux系统中运行容器?

7.什么类型的应用程序 - 无状态或有状态更适合Docker容器?

8.如何使用Docker构建与环境无关的系统?

9.什么是Docker Swarm

10.CI(持续集成)服务器的功能是什么?


1.什么是docker?什么是docker镜像?

docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。
是docker容器的源代码,用于创建容器。使用build命令创建镜像。

2.docker与虚拟机有何不同?docker常用命令?docker使用流程?

(1)docker与虚拟机的不同:

特性 Docker 虚拟机
启动速度 秒级 分钟级
交付/部署 开发、测试、生产环境一致 无成熟体系
性能 近似物理机 性能损耗大
体量 极小(MB) 较大(GB)
迁移/扩展 跨平台,可复制 较为复杂

(2)常见命令:
    docker pull:拉取或者更新指定镜像; docker push:将镜像推送至远程仓库; docker images:列出所有镜像; docker rmi:删除镜像;   
    docker ps:列出所有容器; docker rm:删除容器
(3)使用流程:a.创建Dockerfile后,docker build创建容器的镜像; b.推送或拉取镜像

3.什么是docker容器?docker容器有几种状态?docker容器内部机制?容器与主机之间的数据拷贝?启动容器并挂在目录?

(1)docker容器:docker容器包括应用程序及其所有依赖项,作为操作系统的独立进程运行。
(2)docker容器4种状态:运行+已暂停+重新启动+已退出
(3)docker容器内部机制:每个容器都在自己的命名空间中运行,但使用与所有其他容器完全相同的内核。发生隔离是因为内核知道分配给进程的命名空间,并且在API调用期间确保进程只能访问其自己的命名空间中的资源。
    【操作系统的一个功能是允许将全局资源(如网络和磁盘)共享到进程。如果将这些全局资源包装在命名空间中,以使它们仅对在同一命名空间中运行的那些进程可见】
(4)主机copy到容器:docker cp /www 96f7f14e99ab:/www/  容器copy到主机:docker cp 96f7f14e99ab:/www /tmp/
(5)启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令:
    docker run -d -P --name nginx2 -v /home/nginx:/usr/share/nginx/html nginx
    docker run解读相见:https://www.jianshu.com/p/ea4a00c6c21c

4.Dockerfile中最常见的指令是什么?Dockerfile中的命令COPY和ADD命令有什么区别?

(1)常见指令:FROM + RUN + CMD + WORKDIR + ONBUILD + VOLUME + EXPOSE + LABEL与MAINTAINER + CPOY/ADD

FROM:指定基础镜像;   
运行指令(RUN & CMD & ENTRYPOINT)详见:https://www.cnblogs.com/javazhiyin/p/12955024.html(dockerfile常见面试题)
    RUN:运行指定的命令;CMD:容器启动时要运行的命令 
WORKDIR:(默认在/根目录)终端登录进去的落脚点。类似于cd,如果无该目录,则自动创建后再cd进去; ENV:设置环境常量,方便下文引用
ONBUILD:触发器,当镜像用作另一个镜像构建的基础(例如可使用特定于用户的配置自定义的应用程序构建环境或守护程序)时,ONBUILD指令向镜像添加将在稍后执行的触发指令。
VOLUME:自建容器卷
EXPOSE:当前容器对外界暴露出的端口
LABEL:为镜像指定标签;MAINTAINER:镜像维护者的姓名和邮箱地址

(2)COPY与ADD的区别: COPY:直接拷贝;  ADD:拷贝+解压功能

a.二者都是只复制目录中的文件,而不包含目录本身。
b.COPY能干的事ADD都能干,甚至还有附加功能。
c.ADD可以支持拷贝的时候顺带解压缩文件,以及添加远程文件(不在本宿主机上的文件),COPY的<src>只能是本地文件
d.只是文件拷贝的话可以用COPY,有额外操作可以用ADD代替。
e.docker官方建议当要从远程复制文件时,尽量用curl/wget命令来代替ADD。因为用ADD的时候会创建更多的镜像层。镜像层的size也大。

5.如何在生产中监控docker?

docker提供docker stats和docker事件等工具来监控生产中的docker。我们可以使用这些命令获取重要统计数据的报告。
docker统计数据:当我们使用容器ID调用docker stats时,我们获得容器的CPU,内存使用情况等。它类似于Linux中的top命令。
docker事件:Docker事件是一个命令,用于查看Docker守护程序中正在进行的活动流。一些常见的docker事件是:attach,commit,die,detach,rename,destroy等。我们还可以使用各种选项来限制或过滤我们感兴趣的事件。

6.docker如何在非Linux系统中运行容器?

通过添加到Linux内核版本2.6.24的名称空间功能,可以实现容器的概念。容器将其ID添加到每个进程,并向每个系统调用添加新的访问控制检查。它由clone()系统调用访问,该调用允许创建先前全局命名空间的单独实例。
如果由于Linux内核中可用的功能而可以使用容器,那么显而易见的问题是非Linux系统如何运行容器。Docker for Mac和Windows都使用Linux VM来运行容器。Docker Toolbox用于在Virtual Box VM中运行容器。但是,最新的Docker在Windows中使用Hyper-V,在Mac中使用Hypervisor.framework。

7.什么类型的应用程序 - 无状态或有状态更适合Docker容器?

最好为Docker Container创建无状态应用程序。我们可以从应用程序中创建一个容器,并从应用程序中取出可配置的状态参数。现在我们可以在生产和具有不同参数的QA环境中运行相同的容器。这有助于在不同场景中重用相同的镜像。使用Docker Containers比使用有状态应用程序更容易扩展无状态应用程序。

8.如何使用Docker构建与环境无关的系统?

三个功能来实现: Volumes + 环境变量注入 + 只读文件系统

9.什么是Docker Swarm

Docker Swarm是Docker的本机群集。它将Docker主机池转变为单个虚拟Docker主机。Docker Swarm提供标准的Docker API,任何已经与Docker守护进程通信的工具都可以使用Swarm透明地扩展到多个主机。

10.CI(持续集成)服务器的功能是什么?

CI功能就是在每次提交之后不断地集成所有提交到存储库的代码,并编译检查错误

docker常见面试题相关推荐

  1. docker常见面试题_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)

    本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大家参考.如 ...

  2. Docker常见面试题 | 答案

    目录 1.Docker 是什么? 2.Docker的三大核心是什么? 3.仓库.镜像.容器的关系是? 4.Docker与虚拟机的区别 5.Docker容器的集中状态 6.如何把主机的东西拷贝到容器内部 ...

  3. laravel mysql sum查询并排行_必看!PHP常见面试题——MySQL篇(二)

    接上期:<必看!PHP常见面试题--MySQL篇(一)> 11.MySQL的默认事务隔离级别是? 读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到. 读提交(RC): ...

  4. 3w字 长文干货!100 道 Linux 常见面试题

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 本文一共 3W + 字,分别从 Linux概述.磁盘.目录.文件.安全.语法级.实战.文件管理 ...

  5. 测试开发工程师常见面试题

    1. CPU 和 GPU的区别 CPU 力气大啥P事都能干,还要协调. GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟 ...

  6. 面试1:Java、微服务、架构常见面试题(持续更新中)

    Java.微服务.架构常见面试题(持续更新中) 文章目录 Java.微服务.架构常见面试题(持续更新中) ==**Java**== 1.Java概述 (1)JVM.JRE和JDK (2)Java特点 ...

  7. 300+ Java常见面试题总结【JavaPub版】

    点赞再看,养成习惯 答案解析见文末 我是JavaPub,专注于面试.副业,技术人的成长记录. 这份[Java常见面试题总结]我想准备很久了,前面做面试官,后来自己也面了很多一线二线互联网公司,希望通过 ...

  8. 数据库常见面试题(带答案,开发者必看)

    数据库常见面试题(开发者篇) 什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL.T-SQL). 存储过程的优点: 能够 ...

  9. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

最新文章

  1. 微信小程序 scroll-view 根据内容的高度自适应
  2. NIPS 2018论文解读 | 基于条件对抗网络的领域自适应方法
  3. PHP中的const
  4. python 配置文件对比_difflib模块对比apache配置文件差异
  5. mysql linux文件_MySQL在Linux系统下配置文件详解
  6. Apache在windows的设置
  7. 初探在容器上构建持续部署!
  8. H3C ipv6路由实验
  9. Python基础练习三超市存包柜模拟(优化)
  10. Tapestry5 事件分派机制
  11. 三峡大学学生选课系统_三峡大学选课系统操作流程
  12. Linux上的视频播放及MPV播放器与SVP4插帧
  13. 一款基于 Python 语言的 Linux 资源监视器!
  14. 企业信用评分卡模型概述
  15. 自然语言在公路交通各建设阶段运用
  16. hc-05 android 蓝牙连接,实用,教你简单使用HC05蓝牙模块及如何配对?
  17. 计算机制图笔记本需要什么配置,绘图笔记本需要什么配置?
  18. 学渣的刷题之旅 leetcode刷题 35.搜索插入位置(暴力法、二分查找)
  19. PHP编写rss源(续)
  20. win10的c语言程序闪退,Win10专业版软件打不开闪退怎么办?

热门文章

  1. java获取时间(今天,昨天,上周第一天,本周第一天,本周最后一天)
  2. 【论文阅读】LOKI-Practical Data Poisoning Attack against Next-Item Recommendation
  3. nyoj845无主之地1
  4. mysql设备未就绪_SQL Server 返回了错误 21(设备未就绪。) 解决方法
  5. ccd坏点测试软件,如何测试CCD坏点(ZT)
  6. 从超融合到混合云,深信服有了哪些新“畅想”?
  7. C++编写中的一些特殊符号
  8. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议
  9. 实验7-3-3 统计大写辅音字母(15 分)
  10. 数据库忘记密码(重置用户密码方法教程)