Docker三大概念:镜像、仓库、容器
镜像:Docker镜像是我们把应用程序和运行环境打包在一起的文件,我们可以编写Docker file来告诉Docker如何把我们的环境和应用打包到一起,形成一个镜像文件。
容器:Docker容器是启动之后的镜像实体。我们从仓库中拉取镜像后,就可以通过镜像来启动容器了。一个镜像可以启动多个容器,就像你可以打开多个记事本一样。
仓库:Docker仓库是一台存放Docker镜像的服务器。我们可以把开发好的镜像上传到仓库中,也可以从仓库中拉取我们做好的镜像或者其他人共享出来的镜像。仓库分发官方仓库和私有仓库。官方仓库叫作Docker Hub,访问https://hub.docker.com,注册账号就可以使用了。私有仓库我们可以自已搭建。
Docker容器是一种轻量级的虚拟技术,能够隔离应用程序与依赖项。它利用宿主机的操作系统和内核资源。通过对进程进行隔离和限制来实现。因此每个Docker容器都共享宿主机操作系统的内核。这种共享的方式公开公布很多优势。首先,容器的启动速度非常快,因为它不需要启动一个完整的操作系统。其次,容器的资源利用率较高,因为它们共享操作系统的内核和系统库。最重要的是,容器之间的隔离性可以通过Linux内核的命名空间和控制组等机制来实现。
操作系统=内核+文件系统/库
宿主机为Centos在Docker容器中运行的Ubuntu映像只是Ubuntu文件系统/库-它不包含Ubuntu内核。映像可以对CentOS内核进行内核系统调用。由于核心内核是通用技术,因此即使从Ubuntu用户空间代码到CentOS内核代码进行调用,系统调用也应兼容。这种兼容性使跨所有可能具有不同基本OS映像的容器共享内核成为现实。