Docker学习__基本概念
其他知识点,会在后续学习过程中在做完善。
docker分为两个版本:
- docker-ee 企业版(付费)
- docker-ce 社区版(开源免费)
docker架构(docker architecture)分为3个部分:
- docker的客户端(client)
- docker的服务端(server)
- docker的守护进程(daemon)
- docker的容器(container)
- docker的镜像(image)
- docker的镜像仓库(registry)
不论是Client端还是Server端,都是由docker一个程序提供。
其中的一个子程序叫做daemon,表示为守护进程。运行daemon此主机就变成了守护进程服务器。
镜像(Image):
容器(container):
1.容器可以被创建,启动,停止,删除,暂停等。
2.容器实际是进程,但与直接在宿主机执行的进程的不同,容器进程运行于属于自己的独立的命名空间。
3.容器内的进程是运行在一个隔离的环境里,使用起来就像是在一个独立于宿主的系统下操作一样。
4.容器可以拥有自己的root文件系统,网络配置,进程空间,用户ID空间。这种特性使得容器封装的应
用比直接在宿主运行更加安全。
5.容器也是分层存储。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,
这是为容器运行时读写而准备的存储层是容器存储层。
镜像构建完成后,可以很容易在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像
我们需要一个集中的存储,分发镜像的服务,Docker registries就是这样的服务。一个Docker registries中
可以包含多个仓库;每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应用软件的各个版本,我们可
以通过<仓库名>:<标签>的格式来指定具体是一个软件哪个版本的镜像,如不给出标签,将以latest作为默认标签。
以nginx镜像为例,nginx是仓库的名字,其内包含有不同的版本标签,如,1.14,1.17我们可以通过nginx:1.15,
或者ubuntu:16.04来具体指定所需哪个版本的镜像,如果忽略了标签,比如ubundu,那将视为ubuntu:latest。
仓库名经常以两段式路径形式出现,比如jwilder/nginx-proxy,前者往往意味着Docker registries多用户
环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体Docker registries的软件或服务。