我。dcoker基本概念
-
<李>
镜像(图片)
镜像,从本质上来讲,镜像相当于一个文件系统。镜像是只读的,除了提供容器运行时所需的程序,库,资源,配置等文件外,还包好了一些为运行时准备的一些配置参数,如匿名卷,环境变量,用户等。镜像不包含任何动态数据,其内容在构建之后也不会被改变。一个镜像可以运行多个容器,镜像可以通过dockerfile创建,也可以从dicker中心/registory上下载。
李> <李>容器(容器)
容器,容器的实质是进程,但是是运行在属于自己的独立的命名空间,因此容器可以拥有自己的根文件系统,自己的网络配置,自己的进程空间,甚至自己的用户id空间。说白了就是运行在一个隔离的环境里。
李> <李>仓库(库)
仓库,顾名思义,就是一个用来存储用的空间。镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果要在其他服务器上使用这个镜像,我们就需要一个集中的存储,分发镜像的服务,码头工人注册就是这样的服务
镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是存储镜像的地方
李> <李>分层存储
因为镜像包含操作系统完整的根文件系统,其体积往往是庞大的,因此在码头工人设计时,就充分利用联盟FS的技术,将其设计为<>强分层存储>强劲的架构。严格来讲,镜像并非是像一个ISO那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,是由对曾文件系统联合组成。
镜像构建时,会一层层构建,前一层作为后一层的基础,每一层构建完就不会再发生改变,后一层上的改变只发生在自己这一层上。
李>二世。码头工人的C/S模式
码头工人采用了C/S架构,包括客户端和服务端.Docker守护进程(守护进程)作为服务端接受来自客户端的请求,并处理这些请求(创建、运行,分发容器)
码头工人守护进程一般在宿主机主机后台运行,等待接受来自客户端的消息,码头工人客户端则为用户提供一系列可执行命令,用户用这些命令实现跟码头工人守护京城交互:
至于码头工人的客户端与守护进程之间的通信,其连接方式为套接字连接,主要有三种连接方式:
-
<李> unix:///var/运行/docker.sock李>
<李> tcp://主持人:ip李>
<李> fd://socketfd
完整的码头工人的C/S连接方式的本质可以一般表示为如下:
李>
III。使用码头工人
容器操作
<代码> #启动一个容器 码头工人——nginx/bin/bash运行 #查看容器 码头工人ps (-) (- l) ——所有列出所有容器 - l最新列出最近的容器 #查看指定容器 码头工人检查名称| id 名指代具体的容器名称,id则是容器的唯一标识 #启停容器 码头工人启动|停止名称| id #删除停止的容器 码头工人rm名称| id #进入正在运行的容器 #码头工人附加名称| id退出时要使用Ctrl + P Ctrl + 码头工人exec -名称| id bash退出时可以使用退出 #启动后台运行的容器 码头工人- d… #查看容器日志 码头工人日志[f] [t](多边形)名称| id - f遵循=true |假,默认是假的,显示更新 - t时间戳=true |假,默认是假的,显示时间戳 多边形="所有" |行数,显示最新行数的日志 #查看容器内进程 码头工人顶级名称| id 代码>
镜像操作
<代码> #查询镜像 #码头工人搜索名字(选项) 自动化=false,仅显示自动化构建的镜像 -no-trunc=false,不以截断的方式输出 过滤器,添加过滤条件 #拉取镜像 码头工人拉[选项]名称(标签): ——所有标签=false,下载所有的镜像(包含所有标签) #推送镜像 码头工人推[选项]名称(标签): #列出镜像 码头工人图像[选项](库) -,-=false,显示所有镜像 - f,过滤器=[],显示时过滤条件 -no-trunc=false,指定不使用截断的形式显示数据 q,安静=false,只显示镜像的唯一id #查看镜像 集装箱码头工人检查[选项]|图片(容器|图片) - f,格式=" " #构建镜像 构建码头工人镜像,可以保存对容器的修改,并且再次使用。构建镜像提供了自定义镜像的能力,以软件的形式打包并分发服务及其运行环境.Docker中提供了两种方式来构建镜像: ——通过容器构建:码头工人提交 ——通过Dockerfile:码头工人 1. 使用提交命令构建镜像 命令:码头工人提交[选项]容器(库[标签:]] 参数:一,也只是=" ",指定镜像的作者信息 - m,消息=" ",提交信息 - p,暂停=true,提交时是否暂停容器码头工人学习02-docker基础