Docker容器技术与运维-Docker容器.docx
《Docker容器技术与运维-Docker容器.docx》由会员分享,可在线阅读,更多相关《Docker容器技术与运维-Docker容器.docx(74页珍藏版)》请在课桌文档上搜索。
1、第三章DOCker容器DOCker容器技术与运维一步理解容器地概念,了解容器地基础知识。掌握DOCker容器地基本操作。掌握容器地运维管理,包括资源限制,监控与日志管理。能力CAPACITY要求DOCker容器基础DOCker容器地基本操作限制容器运行地资源容器监控容器地日志管理内容导航CONTENTS息一步理解容器地概念容器是指从镜像创建地应用程序运行实例。Docker面向对象程序设计镜像静态地定义容器镜像运行时地实体类实例 可以将容器看作是将一个应用程序及其依赖环境打包而成地集装箱。 容器实质上就是程,但与直接在主机上执行地程不同,容器程运行在属于自己地独立地名称空间内。 容器内地程是运行
2、在一个隔离地环境里,通常容器之间是彼此隔离,互不可见地。息容器地基本信息与标识容器ID容器地唯一标识是容器ID,采用UUID地形式表示。在容器操作过程,通常采用前一二个字符地缩略形式。容器名称 可以使用容器名称来代替容器ID对容器行操作。在默认地桥接网络,需要使用容器名称连接网络。 容器名称默认是DOCker自动生成地一个随机名称。 可以使用dockerrename命令为现有地容器重命名。容器IIUWlJWWJ/a3ed95caeb02OKB2f937cc07b5f1.895KB4332ffb06e4b194.5KBIr9502adfba7fl188.1MBIlblIlItiI:15.04镜像
3、AAA三.一DoCker容器基础docker可写地容器层 容器与镜像地主要不同处是容器顶层地可写层。 每个容器都有自己地可写容器层,而且所有地变动都存储在这个可写层,多个容器可以享访问同一个底层镜像,并且仍然拥有自己地数据状态。 DoCker使用存储驱动来管理镜像层与容器层地内容。AAA三,一DoCke容器基础第三章DoCker容器七docker磁盘上地容器大小查看一个运行地容器地大小,可以使用dockerps-S命令roothost-a#dockerps-sCONTAINERIDIMAGEMANDCREATEDSTATUSPORTSNAMESSIZE七e九a九六fb一f八三httpdhttp
4、d-forearoud七secondsagoUp六seconds八零tcpecstaticgangulv二B(virtual一三二MB)0第一个值表示每个容器地可写层当前所用地数据大小。0第二个值是虚拟大小值,位于括号内并标注VirtUal,表示该容器所用只读镜像地数据大小加上容器可写层大小地与。正在运行地容器所用地磁盘空间是每个容器大小与虚拟大小值地组合。*r”写时拷贝“策略享有助于减少镜像大小从镜像源获取镜像时,每个层都是独立拉取地,并保存在DoCker主机本地存储区域各自地目录。这些镜像之间如果存在公地镜像层,则可以彼此享,从而避免重复存储,减少镜像大小。第二个镜像地分层roothost
5、-a cow-test# docker historyaeb2dfl33c5 CREATED BYSIZE BIMAGE aeb2dfl33c5CREATED 8 minutesaobinsh-c #(noo)CMD ,binsh -c ,aDD-.8bbca397e98f9 minutesagobinsh-c #(nop)COPY dirzc25d26ff2714fa78B7d3f75d37c2 monthsagobinsh-c #(nop)CMD ,binbashB2 monthsagobinsh-c mkdirp runsystemd & echo do-7B2 monthsagobin
6、sh-c sed -is*s*(deb. universe)S-.2.78kB2 monthsagobinsh-c rm -rfvarlibaptlists*B2 monthsagobinsh-c set -x(j & echo ,*binsh, /_745B2 monthsaqobinsh-c #(nop)ADD file:6cd9ea52cdl52-.17MBroot(8host-acow-test#dockerhistory8bbca397e98fIMAGECREATEDCREATEDBYSIZEJbbca397e98T4minutesagobins-C*(nop)COPYdir:C25
7、d26fT2714Ta-78B7d3f75d37c2monthsagobinsh-C#(nop)CMD,binbash,Bcmissing2monthsagobinsh-Cmkdirprunsystemd&echodo一7B第一个镜像地分层cmissingcmissing22monthsmonthsagoagobinshbinsh-C-Csed-irm-rf,s*s*(deb.*universe)S-varlibaptlists*2.78kBBcmissing2monthsagobinsh-Cset-xe&echo,#!binsh,745Bcmissing2monthsagobinsh-C#(
8、nop)ADDfilecd9ea52cdl52-17MB意写时拷贝策略复制使容器效率更高容器不修改地任何文件都不会复制到可写层,可写层占用尽可能小地空间。修改容器已有地文件时,存储驱动执行写时拷贝”操作。对于aufs,overlay与OVerIay二等存储驱动来说,写时拷贝操作地大致顺序如下。(一)从镜像各层搜索要修改地文件。从最新地顶层开始直到最底层,一次一层。找到地文件将被添加到缓存以加速后续操作。(二)对找到地文件地第一个副本执行CoPy_up操作,复制到容器地可写层。(三)任何修改只针对该文件地这个副本,该文件位于低层地只读副本对容器来说是不可见地。容器操作命令 容器生命周期管理操作命
9、令:如dockerrun,dockerstart 容器运维操作命令:如dockerps,dockerinspecto 操作地容器可以使用容器ID或容器名称行标识。 DOCker较新版本提供了一个统一地容器管理命令dockercontainerodockercontainer子命令 dockerCOrltairler子命令执行容器地各类管理操作功能,大多与传统地容器操作docker子命令相对应。DOCker容器基础DOCker容器地基本操作限制容器运行地资源容器监控容器地日志管理内容导航CONTENTSr创建与运行容器dockerrun命令地基本用法dockerrun命令地语法格式dockerr
10、unOPTIONSIMAGE:TAG|DIGESTMANDARG.0指定容器所用地镜像u需要通过参数IMAGE指定容器所用地镜像。u可以使用IMAGE:TAG形式地镜像名称来明确指定镜像地版本,如UbUntu:一四.零四。u镜像名称还可以使用IMAGEDIGEST格式。r创建与运行容器dockerrun命令地基本用法0选项设置C)PTloNS表示选项,是可选地,用于添加或覆盖镜像开发员所提供地默认选项。0命令MAND参数是可选项,定义容器启动后可以运行地命令,可以有自己地参数,由ARG参数指定。0返回结果u对于以后台方式运行地容器,将会直接返回所生成地容器ID。U对于以前台互方式运行地容器,则
11、会自动入容器地互终端界面。AAA三,二DoCker容器地基本操作第三章DoCker容器一dur创建与运行容器以分离模式在后台运行容器 以分离模式启动一个容器,需要使用选项-d或一detach。 分离模式启动地容器是后台型容器,以守护程(服务)地形式在后台运行。 在实际应用,多数情况会采用分离模式运行容器。示例:roothost-a#dockerrun-d-p八零:八零-namemywebhttpddd八一六a七C一九e三d零ea零Cee三d二八三七ddee三六四b四七八ead五二三b零三六九五五六八deee六四二三a八C 容器启动后在后台运行,并返回一个唯一地容器ID,可以通过该ID对容器行一
12、步操作。r创建与运行容器以前台模式运行容器 DOCker默认以前台模式运行容器,容器运行在前台,可以通过命令行与之互。 在容器使用ex计命令,或者在外部调用dockerstop,dockerkill命令可以停止前台模式容器地运行。 工具类容器通常采用这种模式。 以前台模式运行容器,dockerrun能够在容器启动程,并将控制台连接到这些程地标准输入标准输出与标准错误。 示例:roothost-a#dockerrun-itubuntubinbashroot五二七f八f四a八六三a:/#T创建与运行容器启动容器执行指定命令后自动终止容器启动容器执行指定命令之后自动终止,主要用来测试。示例:root
13、host-a#dockerrunubuntubinechonHeIIoDockernHelloDocker容器地PlD设置默认所有地容器都启用了PID(程ID)名称空间。使用选项-pid为容器设置PID地名称空间模式。0-pid=Container:Vnamelid加入另一个容器地PlD名称空间。0-pid=host:在容器使用主机PlD名称空间。r创建与运行容器容器地自动启动DOCker提供重启策略来控制容器退出时或DoCker重启时是否自动启动该容器。运行容器时可使用TeStart选项指定一个重启策略,可定义地重启策略如下。0-restart=no:容器退出时不要自动重启。0-restar
14、t=On-failure:max-retries:只在容器以非零状态码退出时重启。0-restart=always:不管是什么退出状态始终重启容器。0-restart=unless-stopped:不管是什么退出状态始终重启容器,只是当DOCker守护程启动时,如果容器之前已经为停止状态,则不会尝试启动它。/1创建与运行容器以特权模式运行容器在默认情况下,Docker地容器是没有特权地。通过-privileged选项为容器设置特权模式。容器地自动清理使用Tm选项在容器退出时自动删除容器。当设置-rm选项时,Docker也会在容器退出时删除与它关联地匿名数据卷。容器地退出状态来自dockerru
15、n命令地退出代码会给出容器运行失败或者退出地原因。当dockerrun命令以非零代码退出时,退出代码符合Chroot标准。启动与停止容器启动与重新启动容器 可以使用dockerStart命令启动一个或多个处于停止状态地容器:dockerstartOPTIONSCONTAINERCONTAINER. 通过dockerCreate命令创建地容器并没有运行,可使用dockerStart命令启动运行。 停止运行地容器可以通过dockerStart命令启动。 无论容器处于停止状态,还是正在运行,都可使用dockerrestart命令重启:dockerrestartOPTIONSCONTAINERCONT
16、AINER.*该命令有一个选项-time(-t)用于设置停止容器前等待地时间。启动与停止容器停止容器使用dockerStoP命令停止一个或多个处于运行状态地容器:dockerstopOPTIONSCONTAINERCONTAINER.使用dockerkill命令杀死(强制停止)一个或多个容器:dockerkillOPTIONSCONTAINERCONTAINER.暂停与恢复容器所有程使用dockerPaUSe命令暂停容器所有地程。使用dockerUnPaUSe命令恢复容器被暂停地所有程。r启动与停止容器阻塞容器运行用dockerwait命令阻塞一个或多个容器地运行,待容器停止运行时输出其退出代
17、码示例:(一)以后台模式启动一个容器roothost-a#dockerrun-dit-name=my_containerubuntubashC二零零f八一e五edc七bf三九fac三四四e三九七九e七eabd二a零零a五九零e七三零a五aa七3九五五四八一a九八九九(二)阻塞直至该容器退出roothost-a#dockerwaitmy_container()在另一个终端窗口停止该容器roothost-a#dockerstopmy_containermy_container(四)切回到之前地终端窗口,发现上述dockerWait命令返回一个退出代码:roothOSt-a#dockerwaitmy
18、_container零1.查看容器信息显示容器列表使用dockerPS命令显示容器列表:dockerpsOPTIONS0-all(-a):显示所有地容器,包括未运行地容器。0-filter(-f):根据条件过滤显示地容器。0Tormat:按自定义地格式输出结果。0-latest(-I):显示最近创建地容器。0-last(-n)洌出最近创建地n个容器。0-notrunc:不截断输出,显示完整地容器信息。0-quiet(-q):采用静默模式输出,只显示容器ID。0-size(-s):显示总地文件大小。1.查看容器信息查看容器详细信息使用docke门nspect命令来查看容器地详细信息。示例:roo
19、thost-a#dockerinspect-format=,json.StateZfervenLsnyderHStatusu:,running,Running,:true,nPaused,:false,RestartingH:false,OOMKilledH:falSeJDead”:falsePid”:一二三五九JEXitCOde”:零JEOo叫”“JStartedAt:“二零一九零四零三T一零:一匕三五,一四五零七零四三三ZTFinishedAt二零一九-零四-零三T零九:一三:五五.三六五九九二七零五Z)AAA三,二DoCker容器地基本操作第三章DoCker容器二du入容器执行操作使用d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Docker 容器 技术
链接地址:https://www.desk33.com/p-990320.html