必读的容器入门指南
的Linux容器实际上只是Linux系统上的普通进程。这些进程组使用资源约束(控制组,即[cgroups])、Linux安全约束(Unix权限、功能、SELinux、AppArmor、seccomp等)和命名空间(PID、网络、挂载等)与其他进程组隔离开来。 如果你启动一个Linux系统并且查看使用cat /proc/PID/cgroup的任意进程,你将看到在cgroup中的某一进程。如果你查看 /proc/PID/status,则会看到其功能。如果你查看/ proc / self / attr / current,你将会获取SELinux的标签们。如果你查看/proc/PID/ns,你会在其中看到一系列命名空间的进程。 所以,如果你将容器定义为具有资源限制、Linux安全约束以及命名空间的进程,那么根据这一定义,Linux系统上的每个进程都运行在容器中。这就是为什么有人说“Linux即容器,容器即Linux”。而容器运行时则是修改这些资源限制、安全约束以及命名空间,并且可以启动容器的程序。 容器镜像 Docker引入了容器镜像的概念,这是一个标准的TAR文件,它包含了:
Docker基础镜像由根文件系统和JSON文件组成,可以通过在基础镜像的根文件系统中安装所需的内容,以更新JSON文件,并且新建一个镜像层,通过这种方式可以制作一个新的镜像。 容器镜像的定义最终由Open Container Initiative(OCI)标准化为OCI镜像规范。 用于构建容器镜像的工具被称为容器镜像构建器(如Dockerfile),有时容器引擎也能够完成构建容器镜像的工作,当然也可以使用一些可以构建容器镜像的独立工具。 Docker获取了这些容器镜像(tarballs)然后将他们上传到一个web服务中,你可以从中拉取他们。然后Docker会开发一个协议以便你顺利拉取这些镜像,而这一web服务便被称为容器镜像仓库。
容器引擎可以从容器镜像仓库中拉取镜像,然后将其重组到容器存储上。此外,容器引擎也能启动容器运行时(如下图)。 (编辑:江门站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |