描述
在新容器中运行命令
使用规则
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
扩展
docker run
命令首先在镜像上创建一个可写的容器层,然后使用指定的命令启动它。也就是说,docker run
等同于先执行API /containers/create
、再执行/containers/(id)/start
。一个已停止的容器可以使用docker start 容器ID
重新启动,并保留之前所有的更改。docker ps
命令可以查看所有运行中的容器信息,docker ps -a
命令可以查询全部容器信息,包括已经停止的容器信息。
OPTIONS
命令名称 | 默认值 | 描述 |
---|---|---|
--add-host | 添加一个自定义主机到IP的映射(host:ip) | |
--attach , -a | 附加到STDIN(标准输入)、STDOUT(标准输出)或STDERR(标准错误输出) | |
--blkio-weight | Block IO(相对权重),在10和1000之间,或0禁用(默认0) | |
--cap-add | 添加Linux权限(更多capabilities属性介绍) | |
--cap-drop | 删除Linux权限 | |
--cgroup-parent | 允许设置用于所有容器的默认 cgroup parent | |
--cgroupns | API 1.41+ | |
--cidfile | 将容器ID写入文件 | |
--cpu-count | CPU计数(仅限Windows) | |
--cpu-percent | CPU百分比(仅限Windows) | |
--cpu-period | 限制CPU CFS(完全公平调度程序)周期 | |
--cpu-quota | 限制CPU CFS(完全公平调度程序)配额 | |
--cpu-shares ,-c | CPU份额(相对权重) | |
--cpuset-cpus | 允许执行的cpu (0- 3,0,1) | |
--cpuset-mems | 允许执行的MEMs (0- 3,0,1) | |
--detach ,-d | 在后台运行一个容器并打印容器ID | |
--detach-keys | 重写分离容器的键序列 | |
--device | 向容器添加主机设备 | |
--device-cgroup-rule | 在cgroup允许的设备列表中添加一条规则 | |
--device-read-bps | 限制从设备读取速率(每秒字节数) | |
--device-read-iops | 限制设备的读速率(IO/s) | |
--device-write-bps | 限制设备的写入速率(每秒字节数) | |
--device-write-iops | 限制设备的写速率(IO/s) | |
--disable-content-trust | true | 默认可以pull所有镜像(如果设置false,则只pull签名镜像) |
--dns | 指定容器使用的DNS服务器 | |
--dns-opt | 设置DNS选项 | |
--dns-option | 设置DNS选项 | |
--dns-search | 指定容器DNS搜索域名 | |
--domainname | 容器NIS域名 | |
--entrypoint | 覆盖镜像的默认ENTRYPOINT | |
--env ,-e | 设置环境变量 | |
--env-file | 读入包含环境变量的文件 | |
--expose | 公开端口或端口范围 | |
--gpus | API 1.40+ 要添加到容器中的GPU设备('all'以通过所有GPU) | |
--group-add | 添加其他要加入的组 | |
--health-cmd | 命令来检查健康状态 | |
--health-interval | 运行检查的时间间隔(ms | |
--health-retries | 需要报告不正常状态的连续失败 | |
--health-timeout | 允许一次检查运行的最长时间(ms | |
--help | 打印使用帮助 | |
--hostname ,-h | 容器主机名 | |
--init | API 1.25+ 在容器中运行一个init来转发信号和获取进程 | |
--interactive ,-i | 即使没有连接,也保持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 | 内核内存限制 | |
--label ,-l | 设置容器上的元数据 | |
--label-file | 读入以行分隔的标签文件 | |
--link | 添加到一个容器的链接 | |
--link-local-ip | 容器IPv4/IPv6链路本地地址 | |
--log-driver | 容器的日志驱动程序 | |
--log-opt | 日志驱动器选项 | |
--mac-address | 容器MAC地址(例如,92:d0:c6:0a:29:33) | |
--memory ,-m | 内存限制 | |
--memory-reservation | 内存软限制 | |
--memory-swap | Swap limit等于memory + Swap: '-1'以启用无限的交换 | |
--memory-swappiness | -1 | 调优容器内存交换性(0到100) |
--mount | 将文件系统挂载到容器 | |
--name | 为容器指定一个名称 | |
--net | 将容器连接到网络 | |
--net-alias | 为容器添加网络作用域别名 | |
--network | 将容器连接到网络 | |
--network-alias | 为容器添加网络作用域别名 | |
--no-healthcheck | 禁用任何容器指定的HEALTHCHECK | |
--oom-kill-disable | 阻止因内存溢出杀死容器 | |
--oom-score-adj | 容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0 | |
--pid | 要使用的PID命名空间 | |
--pids-limit | 调整容器pid限制(设置-1为无限) | |
--platform | API 1.32+ 如果服务器支持多平台,则设置平台 | |
--privileged | 将扩展权限授予该容器 | |
--publish ,-p | 将容器的端口发布到主机,主机端口与容器端口映射,格式为 host:container | |
--publish-all ,-P | 将所有暴露的端口发布到随机端口 | |
--pull | missing | 在运行之前拉取镜像("always" |
--read-only | 将容器的根文件系统挂载为只读 | |
--restart | 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目录 | |
--tty ,-t | 分配一个pseudo-TTY(虚拟终端) | |
--ulimit | Ulimit选项(资源控制) | |
--user ,-u | 用户名或UID(格式:<name | |
--userns | 要使用的用户名称空间 | |
--uts | 要使用的UTS名称空间 | |
--volume ,-v | 绑定挂载卷 | |
--volume-driver | 容器的可选卷驱动程序 | |
--volumes-from | 从指定容器装入卷 | |
--workdir ,-w | 容器内的工作目录 |
Run命令
docker run -itd --name centos:centos7.9.2009 /bin/bash -c "echo Hello Docker\!"
docker启动一个后台进程的容器