码头工人面试问题
码头工人面试问答
1.什么是Docker容器?
Docker容器在应用层创建抽象,并将应用程序及其所有依赖项打包在一起。这使我们能够快速可靠地部署应用程序。容器不要求我们安装不同的操作系统。相反,它们使用底层系统的CPU和内存来执行任务。这意味着任何容器化的应用程序都可以在任何平台上运行,而不管底层的操作系统是什么。我们也可以把容器看作Docker映像的运行时实例。
2.描述Docker容器的生命周期。
码头集装箱经历以下几个阶段:
创建容器
运行容器
暂停容器(可选)
打开容器(可选)
起始容器
停止容器
重启容器
关掉容器
销毁容器
3.如何从Docker映像创建Docker容器?
为了从图像中创建一个容器,我们从Docker存储库中提取我们想要的图像并创建一个容器。我们可以使用以下命令:
docker运行-d
4.Docker Compose可以用JSON代替YAML吗?
是的,我们可以用JSON文件代替YAML来编写Docker文件。
$ docker-compose-f docker-compose . JSON up
5.什么是Docker Swarm?
Docker Swarm是一个容器编排工具,允许我们跨不同的主机管理多个容器。通过Swarm,我们可以将多个Docker主机转换为一个主机,以便于监控和管理。
6.如果你想使用一个基本图像并对其进行修改,你会怎么做?
我们可以使用以下Docker命令将图像从Docker Hub拉到我们的本地系统:
码头工人拉动
7.如何启动、停止和终止容器?
要启动Docker容器,请使用以下命令:
码头开始
要停止Docker容器,请使用以下命令:
码头停车
要终止Docker容器,请使用以下命令:
码头工人杀人
8.什么是DockerFile?
Dockerfile是一个文本文件,包含了构建Docker映像所需的所有命令。Docker使用Dockerfile中的指令自动构建映像。我们可以使用docker build来创建一个自动构建,依次执行多个命令行指令。
9.解释Docker组件。
这三个架构组件包括Docker客户端、主机和注册表。
Docker客户机:该组件执行构建和运行操作,以便与Docker主机通信。
Docker主机:这个组件包含Docker守护进程、Docker映像和Docker容器。守护进程建立到Docker注册表的连接。
Docker Registry:这个组件存储Docker图像。它可以是公共注册中心,如Docker Hub或Docker Cloud,也可以是私有注册中心。
10.虚拟化和容器化有什么区别?
虚拟化
虚拟化帮助我们在一台物理服务器上运行和托管多个操作系统。在虚拟化中,虚拟机管理程序为客户操作系统提供虚拟机。虚拟机形成了硬件层的抽象,因此主机上的每个虚拟机都可以充当物理机。
集装箱化
容器化为我们提供了运行应用程序的独立环境。我们可以使用相同的操作系统在单个服务器或虚拟机上部署多个应用程序。容器构成了应用层的抽象,因此每个容器代表一个不同的应用程序。
11.虚拟机管理程序的功能是什么?
虚拟机管理程序或虚拟机监视器是帮助我们创建和运行虚拟机的软件。它使我们能够使用单个主机来支持多个来宾虚拟机。它通过划分主机的系统资源并将其分配给已安装的客户机环境来实现这一点。单个主机操作系统上可以安装多个操作系统。有两种类型的管理计划:
本机:本机虚拟机管理程序或裸机虚拟机管理程序,直接在底层主机系统上运行。它允许我们直接访问主机系统的硬件,不需要基本的服务器操作系统。
托管:托管管理器使用底层的主机操作系统。
12.如何构建Dockerfile?
为了使用我们概述的规范创建图像,我们需要构建一个order文件。要构建Dockerfile,我们可以使用以下docker build命令:
$ docker构建
13.使用什么命令将新映像推送到Docker注册表?
要将新映像推送到Docker注册表,我们可以使用以下docker push命令:
$ docker push myorg/img
14.什么是Docker引擎?
Docker Engine是一种开源的容器化技术,我们可以用它来构建和容器化我们的应用程序。Docker引擎由以下组件支持:
Docker引擎休息API
Docker命令行界面(CLI)
Docker守护进程
15.如何访问正在运行的容器?
要访问正在运行的容器,我们可以使用以下命令:
$ docker exec -it狂欢
16.如何列出所有正在运行的容器?
要列出所有正在运行的容器,我们可以使用以下命令:
$ docker ps
17在哪些平台上?码头工人跑路?
Docker在以下Linux发行版上运行:
CentOS 6+
巴布亚企鹅
ArchLinux
症结3.0以上
openSUSE 12.3+版本
RHEL 6.5以上
Fedora 19/20+
Ubuntu 12.04、13.04
Docker还可以通过以下云服务用于生产:
微软Azure
谷歌计算引擎
亚马逊AWS EC2
亚马逊AWS ECS
机架空间
提示:我们总是建议你在面试前做一些公司调查。为了准备这个特殊的问题,请了解公司如何使用Docker,并在您的回答中包括他们使用的平台。
18.什么是Docker对象标签?
Docker对象标签是存储为字符串的键值对。它们使我们能够向Docker对象添加元数据,如容器、网络、本地守护进程、图像、群节点和服务。
19.使用Docker Compose如何保证容器1在容器2之前运行?
Docker Compose不会等到容器准备好了再移动到下一个容器。为了控制我们的执行顺序,我们可以使用依赖条件,depends_on。这是docker-compose.yml文件中使用的一个示例:
版本:“2.4”
服务:
后端:
版本:。
依赖于:
-分贝
数据库:
图片:postgres
docker-compose up命令将按照我们指定的依赖顺序启动和运行服务。
20.20.docker create命令的作用是什么?
docker create命令在指定的映像上创建一个可写的容器层,并准备该映像来运行指定的命令。