- Docker与Vagrant有何不同
两者的定位完全不同
Vagrant类似于Boot2Docker(一款运行Docker的最小内核),是一套虚拟机的管理环境,Vagrant可
以在多种系统上和虚拟机软件中运行,可以在Windows、Mac等非Linux平台上为Docker支持,自身具
有较好的包装性和移植性。原生Docker自身只能运行在Linux平台上,但启动和运行的性能比虚拟机要
快,往往更适合快速开发和部署应用的场景。
- 开发环境中的Docker与Vagrant该如何选择
Docker不是虚拟机,而是进程隔离,对于资源的消耗很少,单一开发环境下Vagrant是虚拟机上的封
装,虚拟机本身会消耗资源.
- 如何将一台宿主机的docker环境迁移到另外一个宿主机
停止docker服务,将整个docker存储文件复制到另外一太宿主机上,然后调整另外一台宿主机的配置即
可。
- Docker容器创建后,删除了/var/run/.netns目录下的网络名字空间文件,可以手动恢复它
查看容器进程ID,比如1234
到proc目录下,把对应的网络名字空间文字链接到/var/run/netns,然后通过正常的系统命令查看操作
容器的名字空间
- 什么是 Docker镜像
Docker镜像是Docker容器的源代码。换句话说,Docker镜像用于创建容器。使用build命令创建镜
像,并且在使用run启动时它们将生成容器。镜像存储在Docker注册表中,registry.hub.docker.com因
为它们可能变得非常大,镜像被设计为由其他镜像层组成,允许在通过网络传输镜像时发送最少量的数
据
- 解释基本的Docker使用工作流程是怎样的
(1)从Dockerfile开始,Dockerfile是镜像的源代码;(2)创建Dockerfile后,可以构建它以创建
容器的镜像。图像只是“源代码”的“编译版本”,即Dockerfile;(3)获得容器的镜像后,应使用注册表
重新分发容器。注册表就像一个git存储库,可以推送和拉取镜像;接下来,可以使用该图像来运行容
器。在许多方面,正在运行的容器与虚拟机(但没有虚拟机管理程序)非常相似。
- 什么是docker-compose
docker-compose就是一个编排同时管理多个容器的工具,与它配对使用的是一个
docker-compose.yaml文件,docker-compose命令必须在一个包含docker-compose.yaml文件目录下
才能使用。且当下docker-compose命令只能管理当前目录docker-compose文件中所涉及的容器,安装
在机器上的其他容器无法干扰。docker-compose的大部分命令基本和docker的命令重合,他们唯一的
区别是docker命令能管理机器上所有的容器和镜像文件,而docker-compose只能管理当前dockercompose文件所涉及的容器。
- Docker镜像联合文件系统
UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分成,轻量级并且高性能的文件系统,
他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系
统下。Union文件系统的Docker镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应
用镜像。特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把
各层文件系统进行叠加起来,这样最终的文件系统会包含所有底层的文件和目录。
- 什么类型的应用程序无状态或有状态适合Docker容器
最好为Docker Container创建无状态应用程序。我们可以从应用程序中创建一个容器,并从应用程
序中取出可配置的状态参数。现在我们可以在生产环境和具有不同参数的QA环境中运行相同的容器。这
有助于在不同场景中重用相同的镜像。另外,无状态应用程序比有状态应用程序更容易使用Docker容器
进行扩展。
- Docker和虚拟机有啥不同
Docker 是轻量级的沙盒,在其中运行的只是应用,虚拟机里面还有额外的系统。