Docker
1.Docker,是什么?为什么使用?
docker是一个容器化平台,它以容器的形式将你的应用程序及所有的依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行 -更快地交付和部署。开发人员使用镜像构建标准开发环境,运维和测试人员使用镜像来获得和开发人员相同的运行环境。开发环境和测试运维环境无缝对接,节约开发、测试、部署时间 -更高效的资源利用。相较于虚拟机而言docker不需要额外的Hypervisor支持,Docker是内核级别的虚拟化,实现更高的性能 -更简单的更新管理。使用DockerFile,通过简单的修改就可以代替大量的更新操作
2.什么是docker容器?
包括所有的应用程序和依赖项,作为操作系统的独立进程进行、
3.什么是docker镜像
是docker容器的源代码,动词可容器用于创建容器,使用build命令创建镜像
4.docker的几种状态?
4种:运行,已停止,重新启动,已退出
5.常见指令
-FROM 指定基础镜像 -Label 镜像指定标签 -run 运行指定命令 -cmd 容器启动时要运行的命令
6.DockerFile中的命令COPY和Add命令有什么区别?
copy的src只能是本地文件,其他用法一致
7.docker的常见命令?
-docker pull 拉取或更新指定的镜像 -docker push 将镜像推送到远程仓库 -docker rm 删除容器 -docker rmi 删除镜像 -docker images 列出所有镜像 -docker ps 列出所有容器(opinions)
8.容器和主机之间的数据拷贝命令?
Docker cp命令用于容器与主机之间的数据拷贝 -主机到容器: docker cp /www 96f7f14e99ab:www/www/ -容器到主机: docker cp 96f7f14e99ab:www /tmp
9.启动Nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?
Docker run -d -p --name nginx2 -v /home/ngnix:/usr/share/nginx/html ngnix
10.解释一下dockerfile的ONBUILD指令?
当镜像用作另一个镜像构建的基础时,==ONBUILD==指令向镜像添加将在稍后执行的触发指令。如果要构建将用作构建其他镜像的基础的镜像(例如,可以使用特定于用户配置自定义的应用程序构建环境或守护程序),这将非常有用
11.什么是docker swarm?
Docker Swarm是docker的本地群集。他将docker主机池转变为单个虚拟docker主机。Docker Swarm提供标准的docker api,任何已经与docker守护进程通信的工具都可以使用swarm透明地扩展到多个主机
12.如何在生产中监控docker?
-docker提供docker:stats(统计)和docker事件等工具来监控生产中的docker。我们可以使用这些命令获取重要统计数据的报告 -docker数据统计:当我们使用容器ID调用docker stats时,我们获得容器的CPU,内存使用情况等。它类似于Linux中的top命令 -docker事件:docker事件是一个命令,用于查看docker守护程序中正在进行的活动流、一些常见的docker事件是:attach,commit,die,detatch,rename,destroy等。我们还可以使用各种选项来限制或过滤我们感兴趣的事件
13.Docker如何在非Linux系统中运行容器?
-a、通过添加到Linux内核版本2.6.24的名称空间功能,可以实现容器的概念。容器将其id添加到每个进程,并向每个系统调用添加的访问控制检查。它有clone()系统调用访问,该调用运行徐创建先前全局命名空间的单独实例 -b、如果由于linux系统可用的功能而可以使用容器,那么显而易见的问题是非linux系统如何运行容器。mac和windows是使用linuxvm来运行容器。docker toobox用于Virtual BOx vm中运行容器。但是,运行的docker早window中使用Hiper-v,在mac中使用Hipervisor,framework
18.docker和虚拟机有何不同?
-docker不是虚拟化方法。它依赖于实际实现基于容器的虚拟化或操作系统虚拟化的其他工具 -docker是应用程序容器,旨在导包和运行单个服务,多个docker容器可以共用操作系统, 虚拟机是系统容器,旨在运行多个进程,每个虚拟机需要有一个Z操作系统