docker⾯试题和解答(⼀)
1. 什么Docker
Docker是⼀个容器化平台,它以容器的形式将您的应⽤程序及其所有依赖项打包在⼀起,以确保您的应⽤程序在任何环境中⽆缝运⾏。
2. Docker与虚拟机有何不同
Docker不是虚拟化⽅法。它依赖于实际实现基于容器的虚拟化或操作系统级虚拟化的其他⼯具。为此,Docker最初使⽤LXC驱动程序,然后移动到libcontainer现在重命名为runc。Docker主要专注于在应⽤程序容器内⾃动部署应⽤程序。应⽤程序容器旨在打包和运⾏单个服务,⽽系统容器则设计为运⾏多个进程,如虚拟机。因此,Docker被视为容器化系统上的容器管理或应⽤程序部署⼯具。
A 容器不需要引导操作系统内核,因此可以在不到⼀秒的时间内创建容器。此功能使基于容器的虚拟化⽐其他虚拟化⽅法更加独特和
可取。
B 由于基于容器的虚拟化为主机增加了很少或没有开销,因此基于容器的虚拟化具有接近本机的性能。
C 对于基于容器的虚拟化,与其他虚拟化不同,不需要其他软件。
D 主机上的所有容器共享主机的调度程序,从⽽节省了额外资源的需求。
E 与虚拟机映像相⽐,容器状态(Docker或LXC映像)的⼤⼩很⼩,因此容器映像很容易分发。
F 容器中的资源管理是通过cgroup实现的。Cgroups不允许容器消耗⽐分配给它们更多的资源。虽然主机的所有资源都在虚拟机中可
见,但⽆法使⽤。这可以通过在容器和主机上同时运⾏top或htop来实现。所有环境的输出看起来都很相似。
3. 什么是Docker镜像
Docker镜像是Docker容器的源代码,Docker镜像⽤于创建容器。使⽤build命令创建镜像。
4. 什么是Docker容器
Docker容器包括应⽤程序及其所有依赖项,作为操作系统的独⽴进程运⾏。
5. Docker容器有⼏种状态
四种状态:运⾏、已暂停、重新启动、已退出。
6. Dockerfile中最常见的指令是什么
FROM:指定基础镜像
LABEL:功能是为镜像指定标签
cloneRUN:运⾏指定的命令
CMD:容器启动时要运⾏的命令
7. Dockerfile中的命令COPY和ADD命令有什么区别
COPY与ADD的区别COPY的SRC只能是本地⽂件,其他⽤法⼀致
8. docker常⽤命令
docker pull 拉取或者更新指定镜像
docker push 将镜像推送⾄远程仓库
docker rm 删除容器
docker rmi 删除镜像
docker images 列出所有镜像
docker ps 列出所有容器
9. 容器与主机之间的数据拷贝命令
docker cp 命令⽤于容器与主机之间的数据拷贝
主机到容器:
docker cp /www 96f7f14e99ab:/www/
容器到主机:
docker cp 96f7f14e99ab:/www /tmp/
0. 启动nginx容器(随机端⼝映射),并挂载本地⽂件⽬录到容器html的命令
docker run -d -P --name nginx2 -v /home/nginx:/usr/share/nginx/html nginx
1. 解释⼀下dockerfile的ONBUILD指令
当镜像⽤作另⼀个镜像构建的基础时,ONBUILD指令向镜像添加将在稍后执⾏的触发指令。如果要构建将⽤作构建其他镜像的基础的镜像(例如,可以使⽤特定于⽤户的配置⾃定义的应⽤程序构建环境或守护程序),这将⾮常有⽤。
2. 什么是Docker Swarm
Docker Swarm是Docker的本机集。它将Docker主机池转变为单个虚拟Docker主机。Docker Swarm提供标准的Docker API,任何已经与Docker守护进程通信的⼯具都可以使⽤Swarm透明地扩展到多个主机。
3. 如何在⽣产中监控Docker
Docker提供docker stats和docker事件等⼯具来监控⽣产中的Docker。我们可以使⽤这些命令获取重要统计数据的报告。
Docker统计数据:当我们使⽤容器ID调⽤docker stats时,我们获得容器的CPU,内存使⽤情况等。它类似于Linux中的top命令。
Docker事件:Docker事件是⼀个命令,⽤于查看Docker守护程序中正在进⾏的活动流。
⼀些常见的Docker事件是:attach,commit,die,detach,rename,destroy等。我们还可以使⽤各种选项来限制或过滤我们感兴趣的事件
4. 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。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论