Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。
仓库(Registry):
存放镜像的地方,和git类似。上面有大量的镜像可以拉到本地使用。
镜像(Images):
是联合文件系统(UnionFS)。分层,最大的好处就是共享资源。
例如:多个镜像都是从相同的base镜像构建而来,那么宿主机只需要在磁盘盘保存一份base镜像,同时内存中也只需要加载一份base镜像,就可以为所有容器服务了,而且镜像每一层都可以被共享。
容器(Containers):
从编程的角度,可以理解是从类(镜像)创建出来的一个实例。每个容器都是一个独立运行的环境。可以nginx容器、redis容器、php容器等等...
容器数据卷:
容器停止或者关闭后,对部分数据的持久化和容器之间的数据共享、宿主机和容器的数据共享。把数据保存在容器卷上面。简单理解成宿主机(我们服务器)和容器之间的文件夹都是指向同一个内存地址,其中一方修改了这个文件夹或者文件,另一方去读的就是被修改过最新的内容,就像一个共享文件夹一样。
当然,我们也可以通过:ro参数设置容器只有读取这个共享文件的权限,而不能修改文件。