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

一、概况

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

二、RUN详情

2.1 语法

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

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

$ sudo docker run --help

2.2 OPTIONS说明

  • –add-host: 向IP映射添加自定义主机
参数 类型 说明
--add-host list 向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

进入容器内部查看是否生效
Docker 命令详解-容器生命周期管理(RUN)_第1张图片

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

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

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

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

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

  • cidfile:.

参数 类型 说明
--cidfile string 将容器ID写入文件
$ sudo docker run -d  --cidfile ./hh.sh ...
  • CPU
参数 类型 说明
--cpu-period int 是用来指定容器对CPU的使用要在多长时间内做一次重新分配
--cpu-quota int 是用来指定在这个周期内,最多可以有多少时间用来跑这个容器
--cpu-rt-period int 是用来指定容器对CPU的使用要在多长时间内做一次重新分配(微秒限制CPU实时周期)
--cpu-rt-runtime int 是用来指定在这个周期内,最多可以有多少时间用来跑这个容器(微秒限制CPU实时运行时间)
--cpu-shares或-c int CPU份额(相对权重)
--cpus int CPU数量
--cpuset-cpus string 允许执行的CPU 根据实际情况配置
--cpuset-mems string 只应用于 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 ...

你可能感兴趣的:(Docker,Docker学习笔记)