Docker 命令详解-容器生命周期管理(RUN)

一、概况

  • run: 创建一个新的容器并运行一个命令;

二、RUN详情

2.1 语法

$ sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

具体版本特性,可通过命令查看参数说明

$ sudo docker run --help

2.2 OPTIONS说明

  • –add-host: 向IP映射添加自定义主机
参数类型说明
--add-hostlist向IP映射添加自定义主机

示例:

$ sudo docker run -d --add-host cc-man:192.168.46.111 --add-host cc:192.168.46.62  -p 8088:8080 my_tomcat:7.0

进入容器内部查看是否生效
在这里插入图片描述

  • -a/–attach: 设置输入输出内容类型
参数类型可选参数
-a/--attachliststdin:STDIN, STDOUT or STDERR

说明:
stdin: 指定标准输入输出内容类型

  • block IO: 关于 IO 的限制
参数类型说明
--blkio-weightuint16块IO(相对权重),介于10和1000之间,或0为禁用(默认为0)
--blkio-weight-devicelist块IO(相对权重),介于10和1000之间,或0为禁用(默认为0)
  • cap-add/cap-drop: 添加/删除Liunx的内核修改功能
参数类型说明
--cap-addlist添加Linux功能
--cap-droplist删除Linux功能

使用–cap-add和–cap-drop,配合–privileged,你可以更细致的控制container。默认使用这两个参数的情况下,container拥有一系列的内核修改权限。这两个参数都支持all值,如果你想让某个container拥有除了MKNOD之外的所有内核权限,那么可以执行下面的命令:

 $ sudo docker run --cap-add=ALL --cap-drop=MKNOD ...
  • cgroup-parent

  • cidfile:.

参数类型说明
--cidfilestring将容器ID写入文件
$ sudo docker run -d  --cidfile ./hh.sh ...
  • CPU
参数类型说明
--cpu-periodint是用来指定容器对CPU的使用要在多长时间内做一次重新分配
--cpu-quotaint是用来指定在这个周期内,最多可以有多少时间用来跑这个容器
--cpu-rt-periodint是用来指定容器对CPU的使用要在多长时间内做一次重新分配(微秒限制CPU实时周期)
--cpu-rt-runtimeint是用来指定在这个周期内,最多可以有多少时间用来跑这个容器(微秒限制CPU实时运行时间)
--cpu-shares或-cintCPU份额(相对权重)
--cpusintCPU数量
--cpuset-cpusstring允许执行的CPU 根据实际情况配置
--cpuset-memsstring只应用于 NUMA 架构的 CPU 生效,关于这个选项这里不过多介绍

cpu-period:

  • 默认的 CPU CFS「Completely Fair Scheduler」period 是 100ms。我们可以通过 --cpu-period 值限制容器的 CPU 使用。一般 --cpu-period 配合 --cpu-quota 一起使用。

  • 例如:比如说A容器配置的–cpu-period=100000 --cpu-quota=50000,那么A容器就可以最多使用50%个CPU资源,如果配置的–cpu-quota=200000,那就可以使用200%个CPU资源。

$ sudo docker run -it --rm --cpu-period=100000 --cpu-quota=200000 ...

cpu-shares:

  • 默认情况下所有容器的share(简单理解成是权重吧)是相同的,也就是所有容器有相同的权重,在所有容器一起竞争资源时,最终得到的资源是相同的。
  • 比如A和B两个容器,A配置的是1024,B配置的是512,那么A最大可以使用的CPU资源是B的两倍。还有一点要注意的是这种配置是有弹性的,如果A容器一直闲着,那B容器是可以使用空闲资源的。
$ sudo docker run -d  --cpu-shares 100  ...

cpus:

  • 设置CPU数量,主要不可以超出核心数,不然会报错
$ sudo docker run -d --cpus 1.21 ...

cpuset-cpus:

  • 允许执行的CPU 根据实际情况配置
  • 例如我有4核(0,1,2,3)我可以选择0-1两个CPU也可以分别选择1和3
$ sudo docker run -d --cpuset-cpus 0-1 ...
$ sudo docker run -d --cpuset-cpus 1,3 ...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值