2023年7月3日发(作者:)
docker命令⾏⼤全详解(更新中)本⽂是基于docker v18.03 稳定版基础来整理翻译docker命令集命令容器⽣命周期管理创建⼀个新容器并运⾏开启⼀个容器并使其在后台运⾏停⽌⼀个容器重启⼀个容器杀掉⼀个容器进程删除容器暂停容器恢复暂停容器从镜像中创建⼀个容器对⼀个容器执⾏shell命令容器操作列出容器获取容器或镜像的元数据查看正在运⾏中的容器进程信息链接正在运⾏的容器从docker服务器获取事件获取docker⽇志让⼀个容器进⼊等待,使其进⼊阻塞状态讲⼀个容器的⽂件系统打包⾄tar列出⼀个容器的端⼝映射情况管理已经运⾏的容器的部署新的堆栈或更新已有堆栈的更新容器重命名容器卷管理容器⽂件系统操作提交⼀个容器的⽂件系统,使之⽣成⼀个新的镜像向⼀个正在运⾏的容器复制⽂件,或将容器中的⽂件复制出来检查⼀个容器⽂件系统更改情况镜像仓库操作说明命令说明docker登⼊docker登出拉取镜像推送镜像⾄服务器在docker hub上查询镜像镜像管理列出镜像删除镜像修改本地某⼀镜像的标记,使其镜像属于某⼀仓库通过指定Dockerfile⽂件编译镜像查看镜像历史将制定镜像保存成tar⽂件从tar中恢复镜像从tar中创建⼀个新镜像设置checkpoint,类似于恢复点,可以让镜像撤销到曾经设置的某⼀个checkpoint上docker镜像管理docker镜像清单管理docker可信镜像管理集群管理docker集群管理⼯具docker集群节点控制docker集群堆栈管理其他命令查询docker信息查询docker版本docker系统管理docker容器资源使⽤统计管理docker配置docker⽹络管理docker插件管理docker敏感信息管理docker服务管理docker run命令是创建⼀个新容器并运⾏,若本地不存在该容器镜像会直接去镜像仓库中查找并⾃动下载。语法:docker run [OPTIONS] IMAGE [COMMAND] []命令参数说明:参数名默认说明为容器添加⼀个host to ip的映射关系,可以添–add-host加若⼲个,且容器重启后不会消失。若直接修改容器中的/etc/hosts⽂件,容器重启后会消失将容器的stdin,stdout,stderr【标准输⼊,标准输出,错误输出】关联到本地shell中,在执--attach(-a)⾏docker run时,将所有输⼊输出指定到本地shell中,若执⾏时携带此参数,可以指定将stdin,stdout,stderr的某⼀个或某⼏个关联到本地shell限制容器读写权重,当宿主机有1个以上容器--blkio-weight0时,可以设置容器的读写优先权,权重值在10~1000之间,0为关闭权重(该参数默认为0)设置针对指定设备的权重,权重值在10~1000之间,且优先级⾼于增强linux能⼒,在docker容器内限制了⼤部分的linux能⼒,在之前,需要开启这些功能需要--cap-add结合--privileged开启特权模式才能使⽤这些参数,考虑到安全性,可以通过该参数来开启指定的linux功能【默认开启的功能及全部定义详见】,若参数为all则默认开启所有linux能⼒--cap-drop移除linux能⼒配置容器的控制组,继承该控制组的资源限制模式。扩展阅读:创建⼀个容器,并将该容器的pid输出到某⼀⽂件中,若该⽂件存在,则会返回⼀个错误00设置容器cpu数量仅限Windows版本设置容器CPU使⽤百分⽐仅限Windows版本与参数--cpu-quota配合使⽤,⽤于设定cpu从--cpu-period0新分配资源的时间周期,时间周期结束后,会对cpu进⾏重新分配。与参数--cpu-period配合使⽤,⽤于设定该容器在资源分配周期内占⽤cpu的时间,若容器设定--cpu-quota=1000000 --cpu-period=500000,则该容器在这个时间周期内--cpu-quota0权重为50%,这两个参数主要是提升宿主机内某⼀容器的权重⽐,可以⽤来解决宿主机内若⼲容器的资源抢占导致重要容器cpu性能不⾜的场景。该模式应⽤于Linux 的CFS模式,扩展阅读:--cpu-rt-period0--cpu-period的微秒版在⼀个cpu资源分配周期内,优先保证某容器的cpu使⽤的最⼤微秒数。例如,默认周期为--cpu-rt-runtime01000000 微秒(1秒),设置 --cpu-rt-runtime=950000 可确保使⽤实时调度程序的容器每 1000000 微秒可运⾏ 950000 微秒,并保留⾄少 50000 微秒⽤于⾮实时任务。设置容器CPU权重,可以⽤于调整容器在单位分配周期内的资源优先使⽤⽐docker run --cidfile /tmp/docker_ ubuntuecho "test"docker run --blkio-weight-device "/dev/sda:100"ubuntu:latest特殊⽰例docker run –add-host localhost:127.0.0.1ubuntu:latest--blkio-weight-device0--cgroup-parent--cidfile--cpu-count--cpu-percent--cpu-shares(-c)0参数名--cpus默认说明设置容器使⽤cpu的数量,该参数为1.3新增参数⽤于快速设置容器对于cpu的占⽤,例如⽰例,可以直接设置该容器使⽤多少cpu设置容器允许在哪个cpu上执⾏该进程,譬如--特殊⽰例docker run --cpus=".5" ubuntu:latest--cpuset-cpuscpuset-cpus="1,3"为指定在cpu 1 和cpu 3上执⾏,--cpuset-cpus="0-2"为指定在cpu0,cpu1,cpu2上执⾏同参数--cpuset-cpus,但该参数是作⽤于NUMA 架构的 CPUfalse指定该容器运⾏于前台还是后台设置容器的键盘映射键位,在容器被链接到前台docker run --cpuset-cpus="1,3" ubuntu:latestdocker run --cpuset-cpus="0-2" ubuntu:latest--cpuset-memsdocker run --cpuset-mems="1,3" ubuntu:latestdocker run --cpuset-mems="0-2" ubuntu:latest--detach(-d)--detach-keys时,若宿主机的键盘键位与容器键位冲突,可以使⽤该指令对容器的键位进⾏重新映射--device--device-cgroup-rule将宿主机的设备映射⾄容器将宿主机的设备添加到cgroup规则列表中docker run --device-read-bps /dev/sda:100KBubuntu:latestdocker run --device-read-iops /dev/sda:10ubuntu:latest--device-read-bps以字节数/每秒的形式限制设备的读取速率--device-read-iops以每秒所执⾏IO操作的次数的形式限制设备的读取速率以字节数/每秒的形式限制设备的写⼊速率以每秒所执⾏IO操作的次数的形式限制设备的写⼊速率--device-write-bps--device-write-iops--disable-content-trust--dns--dns-opt--dns-option--dns-search--entrypoint--env(-e)--env-file--expose--group-add--health-cmdtrue忽略镜像的校验指定容器使⽤的DNS服务器,默认和宿主⼀致设置DNS选项,同修改/etc/⽂件设置DNS选项,同修改/etc/⽂件指定容器DNS搜索域名,默认和宿主⼀致覆盖Dockerfile中设置的entrypoint命令设置/新增环境变量读取本地环境变量⽂件,并加载到容器中开放⼀个端⼝或⼀组端⼝为容器添加⽤户组执⾏⼀个健康检查命令配合--health-cmd参数,设置健康检查的执⾏的间隔时间(ms | s | m | h)配合--health-cmd参数,设置健康检查命令失败重试的次数配合--health-cmd参数,设置健康检查的启动时间(ms | s | m | h)配合--health-cmd参数,设置健康检查命令超时时间(ms | s | m | h)帮助--health-interval0--health-retries0--health-start-period0--health-timeout0--helpfalse--hostname(-h)参数名--init默认false指定容器的hostname说明使⽤tini⼯具在容器中新增⼀个守护进程,来预防该容器出现僵⼫进程的可能性以交互模式运⾏容器,并将容器的STDIN(标准输⼊)打开,通常与参数--tty (-t)配合使⽤限制容器IO最⼤速率仅限Windows版本以每秒所执⾏IO操作的次数的形式限制设备的读取速率仅限Windows版本设置容器的IPv4地址设置容器的IPv6地址启⽤ipc命名空间。在docker容器中进程交互采⽤了Linux常见的进程间交互⽅法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。容器的进程间交互实际上还是host上具有相同pid命名空间中的进程间交互,因此需要在IPC资源申请时加⼊命名空间信息,每个IPC资源有⼀个唯⼀的32位id。使⽤容器隔离。该参数拥有三个值(1)default 即与使⽤dockerd --exec-opt的参数默认效果相同特殊⽰例--interactive (-i)false--io-maxbandwidth0--io-maxiops0--ip--ip6--ipc--isolation(2)process 使⽤linux内核命名空间进⾏隔离,该参数不⽀持windows环境。(3)使⽤微软的Hyper-V虚拟技术进⾏隔离,该参数仅限windows环境--kernel-memory--label (-l)--label-file0限制该容器内核的内存使⽤设置该容器的元数据通过本地⽂件导⼊元数据⾄该容器指定容器间的关联,使⽤其他容器的IP、env等信息设置本地链路地址(link-local address)ip设置⼀个指定⽇志接受⼯具,⽤于动态收集⽇志。扩展阅读配合参数--log-driver使⽤,⽤于设置⽇志输出参数设置该容器mac地址--link--link-local-ip--log-driver--log-opt--mac-address--memory -m0限制该容器内存使⽤软限制该容器的内存使⽤,当宿主机内存空闲--memory-reservation0时,该容器的内存使⽤可以⼀定⽐例超出限制,但当宿主机内存紧张时,会强制该容器内存使⽤限制在该参数之内内存交换分区⼤⼩限制。配合参数--memory使⽤,且最⼩内存交换限制应该⼤于内存限制。该参数有4种情况:(1)不设置--memory与该参数:则该容器默认可以⽤完宿舍机的所有内存和 宿主机 swap 分区。(2)设置--memory 50MB 不设置--memory-swap(默认为0):则--memory-swap值等于限制内存⼤⼩,即该容器能够申请的最⼤内存为100MB。--memory-swap0参数名默认(3)设置--memory 50MB --memory-swap为-说明1:则该容器最⼤可以申请的内存为50MB+宿主机swap分区⼤⼩(4)设置--memory 50MB --memory-swap100MB:则该容器可以申请的最⼤内存为100MB-50MB=50MB⽤于调整虚拟内存的控制⾏为,为0~100之间的整数。在linux内存管理中,将内存中不活跃的页交换⾄硬盘中,以缓解内存紧张,该参数设特殊⽰例--memory-swappiness-1置为0则认定该容器所有内存中的内容均不允许交换⾄硬盘,⽤以保障最⼤性能,若设置为100,则认为该容器所有内存中的数据均可以交换⾄硬盘。扩展阅读--mount--name将⽂件系统挂载附加到容器设置该容器的名称将容器连接到⽹络,⽀持bridge/host/none/container四种类型设置该容器在⽹络上的别名将容器连接到⽹络,⽀持bridge/host/none/container四种类型设置该容器在⽹络上的别名false禁⽌⼀切健康检查⾏为设置是否禁⽌oom kill⾏为,若该容器因为需要⼤量请求内存,导致宿主机内存不⾜或触发到内--net--net-alias--network--network-alias--no-healthcheck--oom-kill-disablefalse存限制,导致杀死该容器进程,若设置该参数为true则会关闭这个检查调整主机的OOM⾸选项(从-1000到1000)此--oom-score-adj0处需要注意的是,⾮专业⼈⼠docker官⽅是不建议⽤户修改--oom-score-adj--oom-kill-disable这两个参数的--pid⾃定义设置该容器的pid该参数值为整数,为限制该容器所能创建的最⼤进程数。在该容器上开启特权模式,让该容器拥有所有的linux能⼒将容器的端⼝映射到宿主机上falsefalsenofalse将该容器的所有端⼝均随机映射⾄宿主机设置该容器只读在退出该容器时重启该容器当退出该容器时⾃动删除该容器资源指定该容器关联⼀个runtime的容器,在使⽤该--runtime参数时注意runtime specified必须在dockerd--add-runtime注册过。扩展阅读与--security-opt设置安全属性,在windows上使⽤CredentialSpec模块来执⾏⾝份识别。0设置/dev/shm/⽬录的⼤⼩代理进程所接收的所有字符,当指定--sig-docker run -p 8000:8000 ubuntu--pids-limit0--privilegedfalse--publish -p--publish-all (-P)--read-only--restart--rm--shm-size--sig-proxy参数名true默认proxy=false时,ctrl+c和ctrl+d 不会传递信号说明给docker进程⽽关闭容器。停⽌带有信号的容器,在linux环境下输⼊kill -特殊⽰例--stop-signalSIGTERMl,就可以看到所有信号名称,可以指定容器发出某种信号时停⽌该容器,譬如SIGKILL设置容器调⽤命令超时后⾃动退出。该参数可以--stop-timeout0设置容器在调⽤命令时导致超时后多少秒退出,0为永远不退出,该参数单位为秒设定该容器的存储空间,可以分别指定ze、tasize、--tadatasize等项,指定单个容器可⽤数据空间、docker可⽤数据空间、元数据可⽤数据空。修改内核参数,对应修改容器中的/etc/⽂件指定挂载⼀个tmpfs⽬录,tmpfs是⼀种虚拟内存⽂件系统。可以不经由镜像直接创建⼀个容器为容器重新分配⼀个伪输⼊终端,通常与参数--interactive (-i)同时使⽤设置容器的ulimit选项,扩展阅读在该容器下添加新⽤户指定该容器运⾏在指定host user namespace中使⽤uts命名空间。扩展阅读在该容器下挂载新卷挂载⼀个卷容器,该卷可以是⼀个本地共享卷或docker run --storage-opt ze=20G ubuntu--sysctlmap[]--tmpfsdocker run -d --tmpfs/run:rw,noexec,nosuid,size=65536k my_image--tty (-t)false--ulimit--user (-u)--userns--uts--volume (-v)--volume-driver者⼀个远程服务,配合docker volumecreate命令创建⼀个卷可以将任意⽂件夹反挂载到卷中,从⽽快速实现对该容器的备份与迁移。docker run --rm --volumes-from dbstore -v$(pwd):/backup ubuntu tar cvf /backup//dbdata--volumes-from--workdir (-w)指定容器的⼯作⽬录与Dockerfile中的WORKDIR作⽤相同docker start是⽤于启动容器的命令语法:docker start [OPTIONS] CONTAINER []命令参数说明:参数名--attach(-a)--checkpoint--checkpoint-dir默认说明特殊⽰例--detach-keys参数名--interactive(-i)默认说明特殊⽰例dockerd命令集
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688329718a121167.html
评论列表(0条)