Docker 概述


Docker 是一个开源的应用容器引擎 ,让开发者可以打包他们的应用及依赖环境到一个可移植的容器中,然后发布到任何运行有Docker引擎的机器上。

让大家可以随心所欲地使用软件而又不会深陷到环境配置中。 

结构与特性 

和Java虚拟机类似,Docker使用容器引擎解决平台依赖问题,它在每台宿主主机上启动一个Docker守护进程,守护进程屏蔽了与具体平台相关的信息

对上层应用提供统一的接口。Docker化的应用就可以在多个平台下运行,Docker会针对不同的平台,解析给不同平台下执行驱动、存储驱动和网络启动

去执行。 

Docker采用C/S架构,包含Docker Server和Docker Client。Docker Daemon作为server,在宿主机上以后台守护进程的形式运行。Docker

Client可以在本机上以bin命令形式发送指令,也可以通过RESTful的形式发送指令。 

 Docker引入了分层概念。

把一个应用分为任意多个层,  如果两个应用有相同的底层,就可以共享这些层。层次是有优先级的,上层和下层有相同的文件和配置时,

上层覆盖下层,数据以上层的数据为准。

每个应用一个优先级最高的空白层,如果要修改下层的文件,就把这个文件拷贝到这个优先级最高的空白层进行修改,保证下层的文件不做任何修改

                                                       

在Docker的官方仓库里,只需它有完整的文件系统和程序包,没有动态生成新文件的需求;当把它下载到宿主机上运行对外提供服务时,有可能

修改文件,需要有空白层用于写时拷贝。Docker把这两种不同的状态做了区分,分别叫做镜像和容器。

在仓库中的应用都是以镜像的形式存在的,把镜像从Docker仓库下拉到本机,以这个镜像为模板启动应用,叫容器。

Docker位于操作系统和虚拟容器(lxc或libcontainer)之上,他通过调用cgropu、namespace和libcontainer等系统层面的接口完成资源分配与相互隔离。

 

 docker version    #查询docker版本号

 docker search <image_name>    #查询镜像

  Docker官方镜像在仓库中的全名格式:

  <username>/<repository>

  每个用户都可以在Docker官方镜像仓库注册自己的账户,发布自己的Docker镜像,使用“用户名+镜像名”的命名方式,可让用户拥有相同的镜像名互不干扰。

docker pull <image_name>    #下载镜像

docker run    #创建和运行Docker容器,它至少有两个参数,一个是镜像名,一个是在容器中需要运行的命令(在费交互模式下安装软件不要忘了使用“-y”)。

docker commit    #把容器提交为新镜像。

docker push    #上传新镜像到Docker仓库

docker images    #显示当前主机上所有的镜像。

原文地址:https://www.cnblogs.com/jixp/p/9958443.html