赞
踩
docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。docker容器和虚拟机都有虚拟隔离的特性,所以一般都会拿虚拟机和docker容器作比较。
软件的安装和部署是比较麻烦的,不同的环境可能导致软件无法正常运行,例如linux系统传统常用安装软件的方式有三种:源码、rpm包、yum包。这三种方式中yum安装方式最简单了,但yum安装的版本一般比较低,可能需要升级从而导致操作繁琐甚至环境不一致等问题。docker解决了部署简单、环境不一致、资源利用率高等问题。
扩展:
docker使用c/s架构,即客户端/服务器架构。
几乎所有镜像都是通过一个底层镜像(base image)构建而来,这个底层镜像就是引导文件系统(bootfs),bootfs主要包涵引导加载器(bootloader)和内核(kernel),可以简单理解这个底层镜像就是一个简易版的linux系统。容器和镜像的最主要区别就是容器加上了一个顶层,最顶层为读写层,除顶层外其他的都是读层。每一层都包括了一个指向父层的指针。如果一个层没有这个指针,说明它处于最底层。dockerfile由多条指令构成,Dockerfile中的每一条指令都会对应于Docker镜像中的每一层/var/lib/docker/containers/<id>
目录下可以找到容器顶层,<id>
就是一个可读层的id。这个目录下的文件大多是运行时的数据,比如说网络,日志等等。
因为docker镜像只有rootfs和其他镜像层,共用宿主机的bootfs,各个版本的Linux系统bootfs是一样的,不同系统rootfs不一样。容器当引导加载器(bootloader)将内核加载到内存中后,会把临时创建的bootfs这个文件系统删掉,此时系统自检后会将rootfs只读改为读写,可以理解rootfs是一个包含了一般系统上的常见目录结构,类似于/dev, /proc, /bin等等以及一些基本的文件和命令。镜像中的rootfs比较简单,所以进入容器时一些linux命令也就没有。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。