什么是Docker?
Docker基本上是一个容器管理引擎,它使用诸如名称空间和控制组之类的Linux内核功能在操作系统之上创建容器,并自动在容器上部署应用程序。 换句话说,它是供开发人员和系统管理员构建,运输和运行容器化应用程序的开放平台。 构建,发货和运行是基本关键字,稍后将再次访问。
容器
容器是软件的标准单元,可打包您的代码及其所有依赖项,以便应用程序从一个计算环境快速运行到另一个计算环境。 这是应用程序层的抽象,将代码和依赖项打包在一起。 就Docker而言,容器是可以使用Docker run命令运行的Docker映像的实例。 说" Docker的基本目的是运行容器。 [链接]"
Docker容器映像是轻巧的,独立的,可执行的软件软件包,其中包含运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。
容器映像在运行时成为容器,对于Docker容器而言; 图像在Docker Engine上运行时成为容器。
稍后我们将更多地讨论Docker镜像。
容器与虚拟机
虚拟机(VM)由虚拟机管理程序管理,并利用VM硬件,而容器系统则从底层主机提供操作系统服务,并使用虚拟内存硬件隔离应用程序。
一句话,VM提供了一个抽象机,该抽象机使用针对抽象机的设备驱动程序,而容器则提供了一个抽象OS。
容器提供了一种虚拟化操作系统的方法,以便多个工作负载可以在单个OS实例上运行。 使用VM,可以对硬件进行虚拟化以运行多个OS实例。
共享操作系统资源(例如库)减少了重现操作系统代码的需要,并且意味着服务器可以通过单个操作系统安装来运行多个工作负载。 容器非常轻巧,它们只有几兆字节大小,只需几秒钟即可启动。 与容器相比,VM只需几分钟即可运行,并且比等效容器大得多。
容器的速度,敏捷性和可移植性使它们成为促进软件开发的便捷工具。
Dockerfile和Docker映像
Dockerfile是您创建的文件,当您构建它时,该文件又会生成一个Docker映像。 这是用于构建Docker映像的配方(或蓝图),运行单独的构建命令的操作将根据该配方生成Docker映像。
有一些命令(请参阅此处)在Dockerfile中顺序运行以创建映像。 它具有分层的结构,其中包含命令,要使用的库和依赖项。
更多的Docker项目中可能存在一些层,因此分层方法可确保重用已下载的内容。
Docker映像是Docker文件中