版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章重点掌握Docker数据管理的基本方法。掌握Docker日志管理方法。掌握Docker容器监测的基本方法。了解Docker安全机制和Linux内核安全模块。掌握Docker资源控制的基本方法。掌握Docker常见工具Compose和Machine的使用方法。了解DockerAPI,能够通过命令行调用API实现相应功能。Docker数据管理数据卷及其常见操作数据卷容器及其常见操作备份、恢复和迁移数据卷011.数据卷及其常见操作数据卷就是宿主机上一个特殊的目录,它可以绕过联合文件系统,为一个或多个容器提供访问。数据卷设计的目的是数据的永久化,其完全独立于容器的生命周期。数据卷原理图1.数据卷及其常见操作数据卷的特性:1. 数据卷在容器创建时初始化,在容器运行时可以使用其中的文件。2. 数据卷是宿主机中的一个目录,它不依赖于容器,与容器生命周期隔离,因而可以安全的存储文件到数据卷中。3. 在容器之间共享和重用数据卷。4. 容器对数据卷的修改会即可生效。5. 镜像是基于联合文件系统,数据卷是独立于联合文件系统,因而镜像与数据卷之间不会相互影响。6. 数据卷默认会一直存在,没有特别设置不会在容器删除时删除其挂载的数据卷。1.数据卷及其常见操作1.创建并挂载数据卷创建容器时直接创建数据卷,并指定宿主机文件/目录。1)在宿主机上创建一个目录/var/volume_test。2)新建一个以centos:7为镜像,名叫web1的交互式容器,并且创建一个数据卷,挂载宿主机目录/var/volume_test到容器/html1目录中。3)向容器/html1中新建一个文件1.txt,内容为“volumetest”。使用Ctrl+p+q暂时退出Docker容器,但是保持容器一直运行。4)在宿主机上,查看数据卷中的内容。[root@localhost~]#mkdir/var/volume_test[root@localhost~]#dockerrun--nameweb1-it-v/var/volume_test:/html1centos:7/bin/bash[root@3171c40cee70/]#[root@3171c40cee70/]#echo"volumetest">/html1/1.txt[root@localhost~]#cat/var/volume_test/1.txtvolumetest1.数据卷及其常见操作1.创建并挂载数据卷新建一个自定义数据卷html3,并且把它挂载到一个容器上。1)新建一个自定义数据卷html3。2)查看数据卷html3在宿主机上的目录。3)在数据卷html1中新建一个文件3.txt,内容是“volumetest”。4)创建一个使用数据卷html3的容器web3。5)在容器中查看数据卷中的数据。[root@localhost~]#dockervolumecreate--namehtml3[root@localhost~]#dockerinspecthtml3[root@localhost~]#echo"volumetest">/var/lib/docker/volumes/html3/_data/3.txt[root@localhost~]#vim/var/lib/docker/volumes/html3/_data/3.txt[root@localhost~]#dockerrun--nameweb3-it-vhtml3:/html3centos:7/bin/bash[root@bb8c4059e2fb/]#cat/html3/3.txt1.数据卷及其常见操作2.删除数据卷数据卷是脱离容器而存在的,可以通过创建容器的命令创建数据卷,但是这些数据卷不会因为容器的停止和删除被销毁。如果该数据卷不被使用时,就需要手动删除数据卷。通常可以用两种方法删除数据卷:直接删除数据卷或随着容器的删除而删除数据卷。看宿主机中所有的数据卷,并直接删除某一个数据卷。删除容器时使用-v选项删除该容器的数据卷。[root@localhost~]#dockerrun--nameweb4-d-v:/html4centos:7/bin/bash[root@localhost~]#dockervolumelist[root@localhost~]#dockerrm-vfweb4[root@localhost~]#dockervolumermhtml32.数据卷容器及其常见操作数据卷容器是一个专门用于存储数据卷的容器,当其他的容器中需要使用数据卷时,不再把宿主机的目录当作数据卷进行挂载而是挂载数据卷容器。也就是说,容器通过数据卷容器衔接到数据卷上。数据卷容器原理图2.数据卷容器及其常见操作1.创建数据卷容器创建一个数据卷容器的方法和创建普通容器的方法类似,都是通过dockerrun或者create命令来创建。因为使用数据卷容器时,无需保证数据卷容器处于运行状态,所以通常使用dockercreate命令来创建数据卷容器,避免启动容器对宿主机性能的消耗。2.挂载数据卷容器数据卷容器是连接其他容器和数据卷的桥梁,其他容器如何通过数据卷容器连接到自己所需的数据卷,是数据卷容器中非常重要的环节。在创建容器时,可以通过--volumes-from参数挂载指定数据卷容器。2.数据卷容器及其常见操作创建一个数据卷容器并挂载。1)创建一个名为data_container1的容器,此容器中包含一个数据卷/var/volume1。2)在data_container1容器中,向数据卷文件中写入数据。3)创建一个名为app_container2的容器,并且指定数据卷容器为data_container1。4)在容器app_container2中,查看数据卷容器中的数据。[root@localhost~]#dockerrun-it-v/var/volume1--namedata_container1centos:7/bin/bash[root@ec2c37d1b1eb/]#echo"volumetest">/var/volume1/3.txt[root@localhost~]#dockerrun-it--volumes-fromdata_container1--nameapp_container2centos:7/bin/bash[root@261e01ac78e1/]#cat/var/volume1/3.txt3.备份、恢复和迁移数据卷备份数据卷:首先要创建新的容器,并且将其连接到需要备份的数据卷容器上。在容器创建和运行后,进入容器内部执行打包命令,将导出数据放置到挂载的宿主机目录上。为了利用数据卷容器备份,使用--volumes-from参数来加载data_container1容器卷容器,并从宿主机挂载当前目录到容器的/backup目录。备份数据卷容器中的/var/volume1数据为test.tar,备份在当前目录下,执行完成之后删除容器。[root@localhost~]#sudodockerrun--rm--volumes-fromdata_container1-v$(pwd):/backupcentos:7tarcvf/backup/test.tar/var/volume1[root@localhost~]#ls-ltest.tar3.备份、恢复和迁移数据卷恢复和迁移数据卷:要恢复备份的数据,只需要把备份的过程逆向执行一遍即可。将刚刚备份的数据卷进行恢复和迁移。1)进入数据卷容器data_container1,将数据卷中数据删除。从上面输出可知,进入容器内部可以删除数据卷中数据,但是数据卷目录删除不了。[root@localhost~]#dockerattachdata_container1[root@ec2c37d1b1ebvar]#ls/var/volume13.txt[root@ec2c37d1b1eb/]#rm-rf/var/volume1rm:cannotremove'/var/volume1':Deviceorresourcebusy3.备份、恢复和迁移数据卷将刚刚备份的数据卷进行恢复和迁移。2)创建一个容器,挂载宿主机中存放备份数据的目录,连接到包含目标数据卷的数据卷容器data_container1,然进入容器,在容器中执行解包命令,把恢复的数据放置到目标数据卷中。-C后面的路径表示将数据恢复到容器里的路径。命令中用"/",即表示将test.tar中的数据解压到容器的"/"路径下。3)进入容器内部查看数据。[root@localhost~]#dockerrun--rm--volumes-fromdata_container1-v$(pwd):/backupcentos:7tarxvf/backup/test.tar-C/var/volume1/var/volume1/3.txt[root@localhost~]#dockerattachdata_container1[root@ec2c37d1b1eb/]#ls/var/volume13.txtDocker日志与监控Docker默认日志记录使用Docker工具监测容器使用cAdvisor监控容器021.Docker默认日志记录Docker默认的日志查看工具dockerlogs,默认情况下,Docker会将记录发送到标准输出端和标准错误端,通过dockerlogs命令即可获取。使用镜像文件centos:7启动一个容器,让其在后台一直输出hellodocker,使用dockerlogs命令获取日志记录。1.启动后台守护式容器log1。2.使用dockerps查看容器的状态。3.使用dockerlogs命令查看容器的日志信息。4.想要获取时间戳,并且让正在运行的容器不断输出日志,可以使用-t和-f选项。[root@localhost~]#dockerrun--namelog1-dcentos:7/bin/bash-c"whiletrue;doechohellodocker;sleep1;done;"[root@localhost~]#dockerps–l[root@localhost~]#dockerlogslog1[root@localhost~]#dockerlogs-t-flog12.使用Docker工具监测容器Docker自带一个检测工具,名叫dockerstats,它能够返回一个资源使用情况的实时流。该命令提供DockerCPU利用率、内存使用情况、内存限制和网络I/O度量标准的统计信息。使用dockerstats监测容器stats1。获取所有运行容器的监测统计数据。[root@localhost~]#dockerstats$(dockerinspect-f{{.Name}}$(dockerps-q))[root@localhost~]#dockerstatsstats13.使用cAdvisor监控容器谷歌开源的cAdvisor是一个可以查看容器的资源使用情况和性能特征的工具。它使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息,可以对节点机器上的资源及容器进行实时监控和性能数据采集。使用cAdviser查看资源使用情况。下载、安装和启动cAdviser。启动成功后,使用dockerps查看cAdviser的启动情况。在浏览器上访问:8080,将会看到cAdvisor主界面。3.使用cAdvisor监控容器容器的CPU、内存等使用情况3.使用cAdvisor监控容器点击“DockerContainers”链接,会进入新的页面,显示各个容器3.使用cAdvisor监控容器点击容器stats2,可以查看该容器的CPU、内存和网络等详细信息Docker安全Linux内核安全模块Docker资源控制03Docker安全Docker的安全问题一直比较突出,随着Docker的流行,Docker也将面临越发严峻的安全形势。Docker是基于LinuxContainer技术基础上实现的。容器只是简单的通过Namespaces进行内容隔离,在本质上与宿主机上的进程并没有太大区别。换而言之,如果没有使用合适的安全策略,很有可能会有恶意程序跳出容器隔离的环境,影响宿主机的运行。为了更好的保障容器安全,不仅需要深入理解Docker的安全模式,合理利用Linux的内核安全模块,还需要在CPU、内存、I/O和文件系统等多个方面进行资源控制。1.Linux内核安全模块1.Capability在Linux2.2版本之前,当内核对进程进行权限验证的时候,可以将进程划分为两类:privileged和unprivileged。其中,privileged的进程拥有所有内核权限,而unprivileged的进程则根据可执行文件的权限进行判断。通过Linux的Capability机制,Docker提供了容器级别的内核保护。换而言之,用户不仅能够控制每个程序的内核使用权限,还能够对容器的内核能力权限进行控制。使用--cap-drop参数,删除白名单中修改文件所有者的内核能力。[root@localhost~]#dockerrun-it--cap-dropchowndebian:jessie/bin/bashroot@d79454610b36:/#touchtest1root@d79454610b36:/#chownwww-datatest1chown:changingownershipof'test1':Operationnotpermitted1.Linux内核安全模块2.SELinux安全增强型Linux(Security-EnhancedLinux)简称SELinux,它是一个Linux内核模块。Linux2.6及以上版本的Linux内核都已经集成了SELinux模块。SELinux有三种工作模式,分别是:enforcing:强制模式。违反SELinux规则的行为将被阻止并记录到日志中。permissive:宽容模式。违反SELinux规则的行为只会记录到日志中,一般为调试用。disabled:关闭SELinux。可以在/etc/selinux/config中查看SELinux工作模式默认情况下,SELinux不支持Docker。想要在Docker服务中开启SELinux的支持,可以在dockerd启动时加上--selinux-enabled参数,或者修改/etc/docker/daemon.json配置文件中。[root@localhost~]#cat/etc/selinux/config1.Linux内核安全模块3.AppArmorAppArmor(ApplicationArmor)是Linux内核的一个安全模块,允许系统管理员将每个程序与一个安全配置文件关联,从而限制程序的功能。AppArmor有两种工作模式:enforcement和complain。enforcement模式:配置文件里列出的限制条件都会得到执行,并且对于违反这些限制条件的程序会进行日志记录。complain模式:配置文件里的限制条件不会得到执行,Apparmor只是对程序的行为进行记录。运行容器时,如果想要将其他的AppArmor配置用于Docker容器,可以在启动Docker容器的时候通过--security-opt参数选择容器所使用的AppArmor配置文件。[root@localhost~]#dockerrun--rm-it--security-optapparmor=your_profilehello-world2.Docker资源控制1.CPU限制正常情况下,宿主机上的容器在竞争资源时平分CPU使用。如果想要给一些重要的容器分配更多的CPU,可以在启动容器时加入相应参数。设置容器在cpu1和cpu3上运行。1)通过--cpuset-cpus参数设置容器在cpu1和cpu3上运行。2)通过inspect命令查看容器的ID号。3)通过cat命令查看cpuset.cpus文件。[root@localhost/]#dockerrun-it--cpuset-cpus="1,3"--namecpu1centos:7/bin/bash[root@localhost/]#dockerinspectcpu1|grepId[root@localhost/]#cat/sys/fs/cgroup/cpuset/docker/eb1e5a00f4c004115ab9c99077b97e634a6347259586118c33a6e7ed84199a47/cpuset.cpus2.Docker资源控制2.内存限制内存限制限制了容器中的进程能够使用的内存大小。内存限制能够确保一个容器不会因为过多使用内存而影响运行在同一个计算机上的其他容器。启动一个容器,设置容器能使用的内存大小为1G,虚拟内存使用量为3G,则能使用的Swap分区大小为2G。限制容器的内存为1G并禁止了OOMkiller。[root@localhost/]#dockerrun-it-m1G--memory-swap3Gcentos:7/bin/bash[root@localhost/]#dockerrun-it-m1G--oom-kill-disablecentos:7/bin/bash2.Docker资源控制3.I/O限制相对于CPU和内存的资源控制,Docker对磁盘I/O的控制大多数都在有宿主机设备的情况下使用。利用--device-write-bps选项限制容器写/dev/sda的速率30MB/s。查看I/O的调度算法为CFQ,并创建一个容器,确保使用--blkio-weight选项限制优先级为100。[root@localhost~]#cat/sys/block/sda/queue/schedulernoop[deadline]cfq[root@localhost~]#dockerrun-it--rm--blkio-weight100centos:7[root@59787989b2f3/]#[root@localhost~]#dockerrun-it--device-write-bps/dev/sda:30MBcentos:72.Docker资源控制4.文件系统限制为了阻止攻击者写入文件系统,可以对文件系统做出相应的限制。比如在dockerrun命令执行时候,加入--read-only参数,把文件系统设置为完全只读。加入--read-only参数,把文件系统设置为完全只读。数据卷参数之后加上:ro来进行文件系统限制。[root@localhost/]#dockerrun-it-v$(pwd):/root:rocentos:7touch/root/1.txt/bin/bashtouch:cannottouch'/root/1.txt':Read-onlyfilesyste[root@localhost/]#dockerrun-it--read-onlycentos:7/bin/bash[root@2921718a1ecd/]#echo"Thisisatest">1.txtbash:1.txt:Read-onlyfilesystem2.Docker资源控制5.通过ulimit限制在Linux系统中,可以通过ulimit命令对部分资源的使用进行限制。通过--ulimit选项限制容器,限制SHELL进程打开文件数目为1000,限制进程能够使用的CPU资源为1024。[root@localhost~]#dockerrun-it--ulimitnofile=1024:1024--ulimitcpu=1000centos:7/bin/bash[root@f149a1ba11ae/]#ulimit-t1000[root@f149a1ba11ae/]#ulimit-n
1024DockerComposeDockerCompose简介DockerCompose配置文件DockerCompose常见命令DockerCompose实战041.DockerCompose简介DockerCompose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。它由Python编写,最初源于一个开源项目Fig,目标就是定义和运行应用程序。DockerCompose将所管理的容器分为三层,分别是工程(Project),服务(Service)以及容器(Container)。工程是由一个或者多个服务所组成的一个相对完整的业务单元。服务是运行同种应用程序的一个或多个相同容器的运行镜像、参数和依赖,也是在DockerCompose中配置的主要对象。DockerCompose的代码托管在GitHub上,地址为/docker/compose。2.DockerCompose配置文件DockerCompose是使用YML文件来定义多个容器关系的,实际上是把YML文件解析成原生的Docker命令,定义解析容器依赖关系,然后按照顺序启动容器。它定义了包括服务、网络、数据卷在内的一系列项目组件。DockerCompose配置文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。一份标准配置文件应该包括version、services和networks这三大部分。2.DockerCompose配置文件services的书写规则指定服务使用的镜像image:如果镜像在本地不存在,Compose将会尝试拉取镜像。指定构建上下文build:服务除了可以基于指定的镜像,还可以基于Dockerfile。指定服务镜像启动命令command:使用command可以覆盖容器启动后默认执行的命令。指定运行服务的容器名称container_name。指定服务依赖关系depends_on:depends_on标签用于解决容器的依赖、启动先后的问题。指定端口暴露expose:expose暴露端口,但不映射到宿主机,只允许能连接的服务访问。设置服务容器的端口映射ports:ports是用于映射端口的标签。设置容器数据卷volumes:挂载一个目录或者一个已存在的数据卷容器。3.DockerCompose常见命令1.运行容器组合docker-composeup2.停止容器组合docker-composedown3.构建项目镜像docker-composebuild4.创建项目容器docker-composecreate5.启动项目容器docker-composestart6.拉取服务依赖的镜像docker-composepull7.查看服务日志docker-composelogs4.DockerCompose实战创建一个Python应用,使用Flask,将数值记入Redis。该应用有两个服务web和redis,每一个服务对应一个容器,容器的启动有先后依赖关系。通过DockerCompose编排容器的启动顺序,然后使用DockerCompose的up命令启动该Python应用。第一步,建立Python应用目录python,并在该目录下新建一个文件,名叫app.py。第二步,在同一个目录下创建Dockerfile文件,用于构建这个应用的镜像。[root@localhost~]#mkdirpython[root@localhost~]#cdpython[root@localhostpython]#viapp.py[root@localhostpython]#vimDockerfileFROMpython:3.7ADD./codeWORKDIR/codeRUNpipinstall-rflaskredisCMDpythonapp.py4.DockerCompose实战创建一个Python应用,使用Flask,将数值记入Redis。该应用有两个服务web和redis,每一个服务对应一个容器,容器的启动有先后依赖关系。通过DockerCompose编排容器的启动顺序,然后使用DockerCompose的up命令启动该Python应用。第三步,在同一目录下,创建编排脚本docker-compose.yml。[root@localhostpython]#vimdocker-compose.ymlversion:'3'services:web:build:.ports:-"5000:5000"volumes:-.:/codedepends_on:-redisredis:image:redis4.DockerCompose实战创建一个Python应用,使用Flask,将数值记入Redis。该应用有两个服务web和redis,每一个服务对应一个容器,容器的启动有先后依赖关系。通过DockerCompose编排容器的启动顺序,然后使用DockerCompose的up命令启动该Python应用。第四步,通过up命令启动应用。Compose会执行编排脚本,分别制作和抓取web和redis镜像,启动两个容器并连接它们。第五步,通过curlhttp://localhost:5000/访问应用。[root@localhostpython]#docker-composeup[root@localhostpython]curlhttp://localhost:5000/Hello!Ihavebeenseenb'1'times.[root@localhostpython]curlhttp://localhost:5000/Hello!Ihavebeenseenb'2'times[root@localhostpython]curlhttp://localhost:5000/Hello!Ihavebeenseenb'3'times.Docker
MachineDockerMachine简介DockerMachine常见命令DockerMachine实战051.DockerMachine简介DockerMachine是Docker官方容器编排项目之一,使用Go语言编写的。利用DockerMachine工具管理宿主机,可以很方便的在本地的MACOS或者Windows、数据中心以及AWS这样的云计算提供商上创建Docker。使用DockerMachine命令,可以统一管理运行在不同宿主机上的Docker,进行统一启动、检查、停止和重新启动托管主机,也可以升级Docker客户端和守护程序,以及配置Docker客户端与宿主机进行通信。利用DockerMachine统一管理Docker1.DockerMachine简介可以把DockerMachine理解为dockerdaemon和dockerCLI分离的程序。DockerMachine的客户端通过连接宿主机服务器端来操作Docker,这种连接方式通过网络进行。利用DockerMachine远程操作Docker所在的宿主机1.DockerMachine简介DockerMachine的代码托管在GitHub上,可以在/docker/machine/releases/页面中找到下载链接。在Linux系统中,DockerMachine的具体安装过程:1.下载DockerMachine的某一个版本,此时选择v0.16.2。2.修改docker-machine文件的可执行权限。3.复制文件到指定目录。4.查看DockerMachine版本,测试是否安装成功。[root@localhost~]#curl-L/docker/machine/releases/download/v0.16.2/docker-machine-`uname-s`-`uname-m`>/tmp/docker-machine[root@localhost~]#chmod+x/tmp/docker-machine[root@localhost~]#cp/tmp/docker-machine/usr/local/bin/docker-machine[root@localhost~]#docker-machineversion2.DockerMachine常见命令DockerMachine常见命令如下表:命令说明docker-machinecreate用于创建Docker主机docker-machinestart启动一个指定的Docker主机,如果对象是个虚拟机,该虚拟机将被启动docker-machinestop停止一个指定的Docker主机docker-machinels列出所有的管理主机docker-machinestatus获取指定Docker主机的状态,包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error等docker-machineupgrade将一个指定主机的Docker版本更新docker-machineinspect以Json格式输出指定Docker的详细信息docker-machinerm删除某台Docker主机,对应的虚拟机也会被删除docker-machinessh通过SSH连接到主机上,执行命令docker-machineversion显示DockerMachine的版本或者主机Docker版本docker-machineconfig查看当前激活状态Docker主机的连接信息docker-machineenv显示连接到某个主机需要的环境变量3.DockerMachine实战DockerMachine可以管理多个宿主机上的Docker,以下以两个机器为例,manager是管理机,client是被管理机(也叫做宿主机),演示如何利用DockerMachine创建并查看宿主机上的Docker。准备两台已安装DockerEngine的CentOS7系统,manager是管理机,需安装DockerMachine,IP为06。client是被管理机,IP为04。3.DockerMachine实战首先,在manager主机上,配置主机间的SSH免密。1.生成keys并配置可以免密登录宿主机。2.将keys拷贝到client主机上。3.测试是否可以免密登录。4.退出登陆。[root@localhost~]#ssh-keygen[root@localhost~]#ssh-copy-idroot@04[root@localhost~]#ssh'root@04'Lastlogin:TueMar210:10:252021[root@localhost~]#exitlogoutConnectionto04closed.3.DockerMachine实战接下来在manager管理机上使用DockerMachine在宿主机上创建Docker容器。1.执行docker-machinels查看是否有运行Docker的宿主机。2.创建第一个machine:docker123-04,也就是在宿主机上启动Docker。3.创建machine成功后,执行ls查看。4.使用docker-machineinspect命令查看容器docker123的情况。5.使用docker-machineenv查看docker123的环境变量。6.登录到client查看配置项和当前目录中的文件情况。[root@localhost~]#docker-machinels[root@localhost~]#docker-machinecreate--drivergeneric--generic-ip-address=04docker123[root@localhost~]#docker-machinels[root@localhost~]#docker-machineinspectdocker123[root@localhost~]#docker-machineenvdocker123[root@localhost~]#sshroot@04Lastlogin:TueMar1610:15:352021from06[root@docker123~]#cat/etc/systemd/system/docker.service.d/10-machine.confDocker
APIDockerAPI简介DockerRemoteAPIDockerRegistryAPI061.DockerAPI简介DockerAPI是一套基于HTTP,用于操作Docker服务的接口。DockerAPI将对Docker的操作封装成一个个的HTTP接口,只要根据相应的规则对这些接口进行调用,就能直接对Docker中内容进行操作,并获得Docker的运行状态等信息。DockerAPI连接程序与Docker服务1.DockerAPI简介在Docker的生态系统中,存在下列三种API。DockerHubAPI:DockerHub相关的功能。DockerRemoteAPI:Docker守护进程相关的功能。DockerRegistryAPI:存储Docker镜像的Registry相关的功能。所有这三种API都是RESTful风格的,其中DockerRemoteAPI是使用最为频繁的API类型。2.DockerRemoteAPIDockerRemoteAPI是DockerAPI最重要的部分,它能够控制Docker服务及其中的容器、镜像以及网络等功能的运行。DockerRemoteAPI由Docker服务程序提供,随着Docker服务的运行而启动。在默认的配置中,DockerRemoteAPI监听的连接方式是UnixSocket,监听位置是unix:///var/run/docker.sock。操作名称相应API列出所有容器GET/containers/json创建容器POST/containers/create启动容器POST/containers/(id)/start获取容器内进程清单GET/containers/(id)/top检索根镜像获取容器日志GET/containers/(id)logs停止容器POST/containers/(id)/stop2.DockerRemoteAPI1.启动DockerRemoteAPI1)DockerRemoteAPI主要用于远程访问Docker守护进程。因此,在启动Docker守护进程时,需要添加-H参数并指定开启的访问端口。通常通过编辑守护进程的配置文件来实现端口设置。2)重启DockerDaemon和Docker服务。3)检查配置是否已修改成功。4)用curl进行测试DockerRemoteAPI是否启用成功。[root@localhost~]#cat/usr/lib/systemd/system/docker.service[root@localhost~]#systemctldaemon-reload[root@localhost~]#systemctlrestartdocker[root@localhost~]#ps-ef|grepdocker[root@localhostsysconfig]#curl-v--unix-socket/var/run/docker.socktcp::/images/nginx:alpine/json2.DockerRemoteAPI2.通过DockerRemoteAPI列出所有容器可以通过dockerps命令列出所有容器,还可以通过DockerRemoteAPI来获取这些信息,列出容器的API接口地址为:GET/containers/json通过RemoteAPI列出所有容器。单纯使用curl获得的容器列表格式不规范,因此一般配合格式化工具python-mjson.tool使用[root@localhost~]#curl--unix-socket/var/run/docker.socktcp::/containers/json|python-mjson.tool[root@localhost~]#curl--unix-socket/var/run/docker.socktcp::/containers/json2.DockerRemoteAPI3.通过DockerRemoteAPI创建一个容器创建容器的API接口地址为:POST/containers/create通过DockerRemoteAPI创建一个容器。[root@localhost~]#curl-XPOST-H"Content-Type:application/json"http://localhost:2375/containers/create-d'>{>"Ho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代办公软件应用技能实训指南
- 企业销售KPI指标设计与实施方案
- 川教版六年级信息技术课程教学计划
- 放射安全法规与考核题目解析
- 2025-2030中国漂洗添加剂原料供应与成本控制策略研究报告
- 电信行业营销渠道拓展方案
- 四年级必背古诗词带注释及解析
- 2025中国新材料产业技术突破与下游应用市场需求研究报告
- 2025中国数字营销行业市场发展趋势及竞争策略研究报告
- 2025中国数字经济发展趋势及投资机会研究报告
- 电梯自检自查报告
- DL∕T 2528-2022 电力储能基本术语
- 土家族民族文化风俗习惯建筑服饰特色美食土家风情前年传承课件
- DL-T5493-2014电力工程基桩检测技术规程
- JTS-201-2011水运工程施工通则
- SL 288-2014 水利工程施工监理规范
- 胆囊切除术同意书
- 《水电工程岩爆风险评估技术规范》(NB-T 10143-2019)
- 气保焊常见的质量缺陷分析与防止措施
- 职业生涯规划剪辑师
- 《异常血细胞形态》课件
评论
0/150
提交评论