一、格式
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
二、OPTIONS 参数
简写, 名称参数 |
默认参数 |
描述 |
–add-host |
|
添加自定义主机到IP的映射(host:ip) |
–attach , -a |
|
附加到STDIN,STDOUT或STDERR |
–blkio-weight |
|
IO(相对权重),介于10到1000之间,或者为0禁用(默认为0) |
–blkio-weight-device |
|
块IO重量(相对设备重量) |
–cap-add |
|
添加Linux功能 |
–cap-drop |
|
放弃Linux功能 |
–cgroup-parent |
|
容器的可选父cgroup |
–cidfile |
|
将容器ID写入文件 |
–cpu-count |
|
CPU数量(仅Windows) |
–cpu-percent |
|
CPU百分比(仅Windows) |
–cpu-period |
|
限制CPU CFS(完全公平的调度程序)期限 |
–cpu-quota |
|
限制CPU CFS(完全公平的调度程序)配额 |
–cpu-rt-period |
|
限制CPU实时时间(以微秒为单位) |
–cpu-rt-runtime |
|
限制CPU实时运行时间(以微秒为单位) |
-c, –cpu-shares |
|
CPU份额(相对重量) |
–cpus |
|
CPU数量 |
–cpuset-cpus |
|
允许执行的CPU(0-3,0,1) |
–cpuset-mems |
|
允许执行的MEM(0-3,0,1) |
-d, –detach |
|
在后台运行容器并打印容器ID |
–detach-keys |
|
覆盖分离容器的键序列 |
–device |
|
将主机设备添加到容器 |
–device-cgroup-rule |
|
将规则添加到cgroup允许的设备列表中 |
–device-read-bps |
|
限制从设备读取的速率(每秒字节数) |
–device-read-iops |
|
限制从设备读取的速率(每秒IO) |
–device-write-bps |
|
限制对设备的写入速率(每秒字节数) |
–device-write-iops |
|
限制对设备的写入速率(每秒IO) |
–disable-content-trust |
true |
跳过图像验证 |
–dns |
|
设置自定义DNS服务器(例如: 8.8.8.8) |
–dns-opt |
|
设定DNS选项 |
–dns-option |
|
设定DNS选项 |
–dns-search |
|
设置自定义DNS搜索域 |
–domainname |
|
容器NIS域名 |
–entrypoint |
|
覆盖图像的默认ENTRYPOINT |
-e, –env |
|
设置环境变量 |
–env-file |
|
读入环境变量文件 |
–expose |
|
公开一个或多个端口(8080,8081) |
–gpus |
|
API 1.40+GPU设备添加到容器中(“全部”传递所有GPU) |
–group-add |
|
添加其他群组即可加入 |
–health-cmd |
|
运行命令以检查运行状况 |
–health-interval |
|
运行检查之间的时间(ms |
–health-retries |
|
需要连续报告不健康状况 |
–health-start-period |
|
API 1.29+ 容器在开始运行状况重试倒计时(ms |
–health-timeout |
|
允许执行一次检查的最长时间(ms |
–help |
|
打印用量 |
-h, –hostname |
|
容器主机名(例如:例如:localhost) |
–init |
|
API 1.25+ 在容器内运行一个初始化程序,以转发信号并获取进程 |
-i, –interactive |
|
即使未连接STDIN也保持打开状态 |
–io-maxbandwidth |
|
系统驱动器的最大IO带宽限制(仅Windows) |
–io-maxiops |
|
系统驱动器的最大IOps限制(仅Windows) |
–ip |
|
IPv4地址(例如172.30.100.104) |
–ip6 |
|
IPv6地址(例如2001:db8 :: 33) |
–ipc |
|
使用的IPC模式 |
–isolation |
|
集装箱隔离技术 |
–kernel-memory |
|
内核内存限制 |
-l, –label |
|
在容器上设置元数据 |
–label-file |
|
读入行分隔的标签文件 |
–link |
|
将链接添加到另一个容器 |
–link-local-ip |
|
容器IPv4 / IPv6链接本地地址 |
–log-driver |
|
容器的日志记录驱动程序 |
–log-opt |
|
日志驱动程序选项 |
–mac-address |
|
容器MAC地址(例如92:d0:c6:0a:29:33) |
-m,–memory |
|
内存限制 |
–memory-reservation |
|
内存软限制 |
–memory-swap |
|
交换限制等于内存加交换:“-1”以启用无限交换 |
–memory-swappiness |
-1 |
调整容器内存交换(0到100) |
–mount |
|
将文件系统挂载附加到容器 |
–name |
|
为容器分配一个名称 |
–net |
|
网络模式(host, bridge) |
–net-alias |
|
为容器添加网络范围的别名 |
–network |
|
网络名(可以多个容器公用一个网络名,这样多容器会在同一个网络环境下) |
–network-alias |
|
网络别名(未知) |
–no-healthcheck |
|
禁用任何容器指定的健康检查 |
–oom-kill-disable |
|
禁用OOM杀手 |
–oom-score-adj |
|
调台主持人的OOM首选项(-1000至1000) |
–pid |
|
使用的PID名称空间 |
–pids-limit |
|
调整容器pids限制(将-1设置为无限制) |
–platform |
|
实验(守护程序)API 1.32+ 如果服务器具有多平台功能,请设置平台 |
–privileged |
|
赋予此容器扩展的特权 |
-p, –publish |
|
将容器的端口发布到主机 |
-P, –publish-all |
|
将所有公开的端口发布到随机端口 |
–read-only |
|
将容器的根文件系统挂载为只读 |
–restart |
no |
容器退出时重新启动策略以应用(no |
–rm |
|
退出时自动删除容器 |
–runtime |
|
用于此容器的运行时 |
–security-opt |
|
安全选项 |
–shm-size |
|
/ dev / shm的大小 |
–sig-proxy |
true |
代理接收到该过程的信号 |
–stop-signal |
SIGTERM |
停止容器的信号 |
–stop-timeout |
|
API 1.25+ 超时(以秒为单位)以停止容器 |
–storage-opt |
|
容器的存储驱动程序选项 |
–sysctl |
|
Sysctl选项 |
–tmpfs |
|
挂载tmpfs目录 |
-t, –tty |
|
分配伪TTY |
–ulimit |
|
Ulimit选项 |
-u, –user |
|
用户名或UID(格式:<名称 |
–userns |
|
要使用的用户名称空间 |
–uts |
|
使用的UTS名称空间 |
-v,–volume |
|
绑定挂载卷 |
–volume-driver |
|
容器的可选音量驱动器 |
–volumes-from |
|
从指定的容器挂载卷 |
-w,–workdir |
|
容器内的工作目录 |
三、案例
docker run -it hello_jmz echo "hello world"
# echo "hello world" 会覆盖hello_jmz 的CMDdocker run -d -p 8081:8080 -v ./hosts:/etc/hosts:ro --rm playgateway
# 后台运行并打印容器iD, 将容器的8080端口映射到主机的8081,将当前的host 文件挂载到容器的/etc/hosts,已只读的方式挂载. 结束自动删除容器docker run --restart=always --network=my_net --name platformui platformpcweb
# 容器挂掉时总是重启, 容器名为platformui , 使用网络my_net, 没有会创建docker run -it --rm centos bash
# 已交互的形式 进入centos 容器,退出后,删除容器