英语法语西班牙语

Ad


OnWorks 网站图标

docker-run - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 docker-run

这是 docker-run 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


docker-run - 在新容器中运行命令

概要


搬运工人 运行 [-a|- 附[=[]]][--添加主机[=[]]][--blkio-权重[=[BLKIO-重量]]]
[--blkio-重量设备[=[]]][--cpu 份额[=0]][--cap-添加[=[]]][--帽掉落[=[]]]
[--cgroup-父级[=CGROUP-路径]][--cid文件[=CID文件]][--cpu-周期[=0]][--cpu-配额[=0]]
[--cpuset-cpus[=CPUSET-CPU]][--cpuset-mems[=CPUSET-MEMS]][-d|- 分离]
[--分离键[=[]]][- 设备[=[]]][--设备读取-bps[=[]]][--设备读取iops[=[]]]
[--设备写入bps[=[]]][--设备写入iops[=[]]][--dns[=[]]][--dns-选择[=[]]]
[--dns-搜索[=[]]][-e|--env[=[]]][- 入口点[=入口点]][--env-文件[=[]]]
[- 暴露[=[]]][--组添加[=[]]][-h|- 主机名[=主机名]][ - 帮帮我[-i|- 交互的]
[--ip[=IPv4地址]][--ip6[=IPv6地址]][--IPC[=IPC]][- 隔离[=默认]]
[--内核内存[=内核内存]][-l|- 标签[=[]]][--标签文件[=[]]][- 关联[=[]]]
[--日志驱动程序[=[]]][--日志选项[=[]]][-m|- 记忆[=记忆]][- MAC地址[=MAC地址]]
[--内存保留[=内存保留]][--内存交换[=极限]]
[--内存交换[=内存交换]][- 姓名[=您的姓名]][- 网[=“桥”]]
[--网络别名[=[]]][--oom-kill-禁用[--oom-分数-调整[=0]][-P|--全部发布]
[-p|- 发布[=[]]][--pid[=[]]][- 特权[- 只读[- 重新开始[=重新开始]][- R M]
[--安全-选择[=[]]][--停止信号[=信号]][--shm-大小[=[]]][--sig-代理[=true]]
[-t|--tty[--tmpfs[=[容器目录[: ]]][-u|- 用户[=USER]][--ulimit[=[]]]
[--UTS[=[]]][-v|- 体积[=[[主机目录:]容器目录[:选项]]]]
[--音量驱动[=DRIVER]][--volumes-来自[=[]]][-w|--工作目录[=工作目录]] 图像 [命令]
[阿格...]

商品描述


在新容器中运行进程。 搬运工人 运行 用自己的文件系统启动一个进程,
它自己的网络,以及它自己的隔离进程树。 启动进程的 IMAGE
可以定义与将在容器中运行的进程相关的默认值,
网络公开,等等,但是 搬运工人 运行 将最终控制权交给操作员或
从镜像启动容器的管理员。 是因为 搬运工人 运行 有更多
选项比任何其他 Docker 命令都多。

如果 IMAGE 尚未加载,则 搬运工人 运行 将拉取 IMAGE 和所有图像
依赖,从存储库中以同样的方式运行 搬运工人 图像,在它之前
从该图像启动容器。

配置


-a, - 附=[]
附加到 STDIN、STDOUT 或 STDERR。

在前台模式下(默认情况下 -d 未指定), 搬运工人 运行 可以开始了
容器中的进程并将控制台附加到进程的标准输入、输出、
和标准误。 它甚至可以伪装成一个 TTY(这是大多数命令行
可执行文件期望)并传递信号。 这 -a 可以为每个标准输入设置选项,
标准输出和标准错误。

--添加主机=[]
添加自定义主机到 IP 映射 (host:ip)

向 /etc/hosts 添加一行。 格式为主机名:ip。 这 --添加主机 可以设置选项
多次。

--blkio-权重=0
块 IO 权重(相对权重)接受 10 到 1000 之间的权重值。

--blkio-重量设备=[]
块IO权重(相对设备权重,格式: DEVICE_NAME:重量).

--cpu 份额=0
CPU份额(相对权重)

默认情况下,所有容器获得相同比例的 CPU 周期。 这个比例可以
通过更改容器的 CPU 份额权重相对于所有的权重来修改
其他正在运行的容器。

要修改默认值 1024 的比例,请使用 --cpu 份额 标志设置
权重为 2 或更高。

该比例仅适用于 CPU 密集型进程正在运行时。 当任务在
一个容器空闲,其他容器可以使用剩余的 CPU 时间。 实际金额
CPU 时间将根据系统上运行的容器数量而有所不同。

例如,考虑三个容器,一个的 cpu-share 为 1024,另外两个的 cpu-share 为
cpu-share 设置为 512。当所有三个容器中的进程尝试使用 100%
CPU,第一个容器将获得总 CPU 时间的 50%。 如果添加第四个
cpu-share 为 1024 的容器,第一个容器仅获得 33% 的 CPU。 这
剩余的容器分别获得 16.5%、16.5% 和 33% 的 CPU。

在多核系统上,CPU 时间份额分布在所有 CPU 内核上。 即使
一个容器被限制在少于 100% 的 CPU 时间,它可以使用每个个体的 100%
CPU核心。

例如,考虑具有三个以上内核的系统。 如果你启动一个容器 {C0}
-c=512 运行一个进程和另一个容器 {C1} -c=1024 跑两个
进程,这可能导致 CPU 份额的以下划分:

PID 容器 CPU CPU 份额
100 {C0} 0 100% 的 CPU0
101 {C1} 1 100% 的 CPU1
102 {C1} 2 100% 的 CPU2

--cap-添加=[]
添加 Linux 功能

--帽掉落=[]
删除 Linux 功能

--cgroup-父级=“”
将在其下创建容器的 cgroup 的 cgroup 的路径。 如果路径
不是绝对的,路径被认为是相对于init的cgroups路径
过程。 如果 Cgroup 尚不存在,则会创建它们。

--cid文件=“”
将容器 ID 写入文件

--cpu-周期=0
限制 CPU CFS(完全公平调度程序)周期

限制容器的 CPU 使用率。 这个标志告诉内核限制容器的 CPU
在您指定的期限内使用。

--cpuset-cpus=“”
允许执行的 CPU (0-3, 0,1)

--cpuset-mems=“”
允许执行的内存节点 (MEM) (0-3, 0,1)。 仅对 NUMA 有效
系统。

如果您的系统上有四个内存节点 (0-3),请使用 --cpuset-mems=0,1 然后处理
在您的 Docker 容器中,只会使用前两个内存节点的内存。

--cpu-配额=0
限制 CPU CFS(完全公平调度程序)配额

限制容器的 CPU 使用率。 默认情况下,容器以完整的 CPU 资源运行。
此标志告诉内核将容器的 CPU 使用率限制为您指定的配额。

-d, - 分离=true|false
分离模式:在后台运行容器并打印新的容器 ID。 这
默认是 false.

随时可以跑 搬运工人 ps 在另一个 shell 中查看正在运行的列表
容器。 您可以使用以下命令重新附加到分离的容器 搬运工人 连接。 如果您选择
在分离模式下运行容器,则不能使用 -R M 选项。

在 tty 模式下附加时,您可以从容器中分离(并保持运行)
使用可配置的键序列。 默认顺序是 CTRL-p CTRL-q. 你配置
使用的键序列 --分离键 选项或配置文件。 看
配置-json(5) 有关使用配置文件的文档。

--分离键=“”
覆盖用于分离容器的键序列。 格式为单个字符 [aZ]
or Ctrl- 哪里 是其中之一: AZ, @, ^, [, , or _.

- 设备=[]
将主机设备添加到容器中(例如 --device=/dev/sdc:/dev/xvdc:rwm)

--设备读取-bps=[]
限制设备的读取速率(例如 --device-read-bps=/dev/sda:1mb)

--设备读取iops=[]
限制设备的读取速率(例如 --device-read-iops=/dev/sda:1000)

--设备写入bps=[]
限制设备的写入速率(例如 --device-write-bps=/dev/sda:1mb)

--设备写入iops=[]
限制写入速率 aa 设备(例如 --device-write-iops=/dev/sda:1000)

--dns-搜索=[]
设置自定义 DNS 搜索域(使用 --dns-search=. 如果您不想设置搜索
域)

--dns-选择=[]
设置自定义 DNS 选项

--dns=[]
设置自定义 DNS 服务器

此选项可用于覆盖传递给容器的 DNS 配置。
通常,当主机 DNS 配置对容器无效时,这是必需的
(例如,127.0.0.1)。 在这种情况下 --dns 每次运行都需要标志。

-e, --env=[]
设置环境变量

此选项允许您指定可用于的任意环境变量
将在容器内启动的进程。

- 入口点=“”
覆盖图像的默认 ENTRYPOINT

此选项允许您覆盖在
文件。 图像的入口点类似于命令,因为它指定了什么
容器启动时运行的可执行文件,但(故意)更难
覆盖。 ENTRYPOINT 赋予容器默认的性质或行为,这样当
你设置一个 ENTRYPOINT 你可以运行容器,就好像它是那个二进制文件一样,完成
默认选项,您可以通过 COMMAND 传入更多选项。 但是,有时一个
操作员可能想在容器内运行其他东西,所以你可以覆盖
在运行时使用默认的 ENTRYPOINT - 入口点 和一个字符串来指定新的
入口点。

--env-文件=[]
读入一行分隔的环境变量文件

- 暴露=[]
公开一个端口或一系列端口(例如 --expose=3300-3310)通知 Docker
容器在运行时侦听指定的网络端口。 Docker 使用这些信息
使用链接互连容器并在主机系统上设置端口重定向。

--组添加=[]
添加其他组以作为运行

-h, - 主机名=“”
容器主机名

设置容器内可用的容器主机名。

- 帮帮我
打印使用说明

-i, - 交互的=true|false
即使没有连接,也要保持 STDIN 打开。 默认是 false.

设置为 true 时,即使未附加,也要保持标准输入打开。 默认值为假。

--ip=“”
设置容器的接口 IPv4 地址(例如 172.23.0.9)

它只能与 - 网 用于用户定义的网络

--ip6=“”
设置容器的接口 IPv6 地址(例如 2001:db8::1b99)

它只能与 - 网 用于用户定义的网络

--IPC=“”
默认是为容器创建私有 IPC 命名空间(POSIX SysV IPC)
'容器: ': 重用另一个共享的容器
内存、信号量和消息队列
'host':使用主机共享内存、信号量和消息
在容器内排队。 注意:主机模式让容器完全访问本地
共享内存,因此被认为是不安全的。

- 隔离="默认"
隔离指定容器使用的隔离技术类型。

-l, - 标签=[]
在容器上设置元数据(例如,--label com.example.key=value)

--内核内存=“”
内核内存限制(格式: [ ],其中单位 = b、k、m 或 g)

限制容器可用的内核内存。 如果指定的限制为 0(不是
运用 --内核内存),容器的内核内存不受限制。 如果您指定一个
限制,它可以四舍五入为操作系统的页面大小的倍数和
价值可能非常大,数百万万亿。

--标签文件=[]
读入一行分隔的标签文件

- 关联=[]
以以下形式添加到另一个容器的链接:alias 或只是在
在这种情况下别名将匹配名称

如果运营商使用 - 关联 当启动新的客户端容器时,客户端
容器可以通过私有网络接口访问暴露的端口。 Docker 将设置
客户端容器中的一些环境变量来帮助指示哪个接口和
要使用的端口。

--日志驱动程序="json文件|系统日志|日记|凝胶|流利的|日志|散弹|没有"
容器的日志驱动程序。 默认由守护进程定义 --日志驱动程序 旗。
警告提供两款控制器:一款是 搬运工人 日志 命令仅适用于 json文件
日记 日志驱动程序。

--日志选项=[]
记录驱动程序特定选项。

-m, - 记忆=“”
内存限制(格式: [ ],其中单位 = b、k、m 或 g)

允许您限制容器可用的内存。 如果主机支持swap
记忆,那么 -m 内存设置可以大于物理 RAM。 如果极限为 0
指定(不使用 -m),容器的内存不受限制。 实际限制可能是
四舍五入为操作系统页面大小的倍数(该值将非常
大,那是数百万万亿)。

--内存保留=“”
内存软限制(格式: [ ],其中单位 = b、k、m 或 g)

设置内存预留后,当系统检测到内存争用或内存不足时,
集装箱被迫将消费限制在预订范围内。 所以你应该
始终设置以下值 - 记忆,否则硬限制优先。 经过
默认情况下,内存预留将与内存限制相同。

--内存交换="限制"
等于内存加交换的限制值。 必须与 -m (- 记忆) 旗帜。 这
交换 极限 应该总是大于 -m (- 记忆) 价值。

格式 极限 is [ ]. 单位可以 b (字节), k (千字节), m
(兆字节),或 g (千兆字节)。 如果不指定单位, b 用来。 将限制设置为 -1
启用无限交换。

- MAC地址=“”
容器 MAC 地址(例如 92:d0:c6:0a:29:33)

请记住,以太网中的 MAC 地址必须是唯一的。 IPv6 链路本地
根据 RFC4862,地址将基于设备的 MAC 地址。

- 姓名=“”
为容器指定名称

操作员可以通过三种方式识别容器:
UUID 长标识符
(“f78375b1c487e03c9438c729345e54db9d20cfa2ac1fc3494b6eb60872e74778”)
UUID 短标识符(“f78375b1c487”)
姓名(“约拿”)

UUID 标识符来自 Docker 守护进程,如果名称未分配给
容器 - 姓名 那么守护进程也会生成一个随机字符串名称。 名字是
定义链接时很有用(请参阅 - 关联)(或任何其他您需要标识的地方
容器)。 这适用于后台和前台 Docker 容器。

- 网=""
为容器设置网络模式
'bridge':在默认 Docker 上创建网络堆栈

“无”:没有网络
'容器: ': 重用另一个容器的网络

'host':使用 Docker 主机网络堆栈。 备注:主持人
模式使容器可以完全访问本地系统服务,例如 D-bus,并且是
因此被认为是不安全的。
' | ':连接到用户定义的
网络

--网络别名=[]
为容器添加网络范围的别名

--oom-kill-禁用=true|false
是否为容器禁用 OOM Killer。

--oom-分数-调整=“”
调整主机对容器的 OOM 首选项(接受 -1000 到 1000)

-P, --全部发布=true|false
将所有暴露的端口发布到主机接口上的随机端口。 默认是 false.

当设置为 true 时,将所有公开的端口发布到主机接口。 默认值为假。
如果操作员使用 -P(或 -p),那么 Docker 将使暴露的端口在
主机和端口将可用于可以访问主机的任何客户端。 使用 -P 时,
Docker 会将任何暴露的端口绑定到主机上的随机端口 短暂的 端口
范围 被定义为 /proc/sys/net/ipv4/ip_local_port_range. 找到之间的映射
主机端口和暴露的端口,使用 搬运工人 端口.

-p, - 发布=[]
将容器的端口或端口范围发布到主机。

格式: ip:主机端口:容器端口 | ip::容器端口 | 主机端口:容器端口 |
集装箱港口 hostPort 和 containerPort 都可以指定为端口范围。 什么时候
为两者指定范围,范围内的容器端口数必须与
范围内的主机端口数。 (例如, 搬运工人 运行 -p 1234-1236:1222-1224 - 姓名
这个作品 -t busybox的 但不 搬运工人 运行 -p 1230-1236:1230-1240 - 姓名
RangeContainerPorts比RangeHostPorts大 -t busybox的) 使用 IP: 搬运工人 运行 -p
127.0.0.1:$主机端口:$CONTAINERPORT - 姓名 集装箱 -t 一些形象 使用 搬运工人 端口
实际映射: 搬运工人 端口 集装箱 $集装箱港口

--pid=主持人
设置容器的PID模式
主持人: 在容器内使用主机的 PID 命名空间。
注意:主机模式使容器可以完全访问本地 PID,因此
认为不安全。

--UTS=主持人
为容器设置 UTS 模式
主持人:在容器内使用主机的 UTS 命名空间。
注意:主机模式允许容器访问更改主机的主机名,并且是
因此被认为是不安全的。

- 特权=true|false
授予此容器扩展权限。 默认是 false.

默认情况下,Docker 容器是“无特权的”(=false)并且不能,例如,运行
Docker 容器内的 Docker 守护进程。 这是因为默认情况下容器不是
允许访问任何设备。 “特权”容器可以访问所有设备。

当操作员执行 搬运工人 运行 - 特权, Docker 将允许访问所有
主机上的设备以及在 AppArmor 中设置一些配置以允许容器
对主机的访问几乎与在容器外运行的进程相同
主办。

- 只读=true|false
将容器的根文件系统挂载为只读。

默认情况下,容器将使其根文件系统可写,允许进程写入
任何地方的文件。 通过指定 - 只读 标记容器将有其根
文件系统挂载为只读,禁止任何写入。

- 重新开始="没有"
重新启动策略以在容器退出时应用(不,失败时 [:max-retry],始终,
除非停止)。

- R M=true|false
退出时自动移除容器(与 -d 不兼容)。 默认是
false.

--安全-选择=[]
安全选项

"label:user:USER" : 设置容器的标签用户
"label:role:ROLE" : 设置容器的标签角色
"label:type:TYPE" : 设置容器的标签类型
"label:level:LEVEL" : 设置容器的标签级别
"label:disable" : 关闭容器的标签限制

--停止信号=目标期限
停止容器的信号。 默认值为 SIGTERM。

--shm-大小=“”
尺寸 /开发/shm. 格式是 .
必须大于 0. 单位是可选的,可以是 b (字节), k (千字节),
m(兆字节),或 g (千兆字节)。
如果省略单位,系统将使用字节。 如果完全省略大小,系统
使用 64 m.

--sig-代理=true|false
代理接收到进程的信号(仅限非 TTY 模式)。 SIGCHLD、SIGSTOP 和
SIGKILL 没有被代理。 默认是 true.

--内存交换=“”
调整容器的内存交换行为。 接受 0 到 100 之间的整数。

-t, --tty=true|false
分配一个伪 TTY。 默认是 false.

当设置为 true Docker 可以分配一个伪 tty 并附加到任何的标准输入
容器。 例如,这可用于运行一次性交互式 shell。 这
默认为假。

-t 选项与 docker 客户端标准输入的重定向不兼容。

--tmpfs=[] 创建一个 tmpfs 挂载

挂载一个临时文件系统(临时文件系统) 挂载到容器中,例如:

$ docker run -d --tmpfs / tmp目录:rw,size=787448k,mode=1777 我的图片

此命令挂载一个 临时文件系统 at / tmp目录 容器内。 支持的挂载选项是
与 Linux 默认相同 安装 旗帜。 如果不指定任何选项,系统
使用以下选项: rw,noexec,nosuid,nodev,大小=65536k.

-u, - 用户=“”
设置使用的用户名或 UID 以及可选的组名或指定的 GID
命令。

以下示例均有效:
--user [用户 | 用户:组 | 用户名 | uid:gid | 用户:gid | 用户名:组]

如果没有这个参数,命令将在容器中以 root 身份运行。

--ulimit=[]
超限选项

-v|- 体积[=[[主机目录:]容器目录[:选项]]]
创建绑定安装。 如果您指定, -v /主机目录:/容器目录, 码头工人
绑定坐骑 /主机目录 在主机到 /容器目录 在 Docker 中
容器。 如果省略 'HOST-DIR',Docker 会自动创建新的
主机上的音量。 这 配置 是一个逗号分隔的列表,可以是:

· [读|读]

· [z|Z]

· [[r]共享|[r]奴隶|[r]私人]

容器目录 必须是绝对路径,例如 /src/文档。 该 主机目录 可以是
绝对路径或 姓名 价值。 一种 姓名 值必须以字母数字字符开头,
其次是 a-z0-9, _ (下划线), . (期间)或 - (连字符)。 绝对路径以
a / (正斜杠)。

如果您提供 主机目录 这是一个绝对路径,Docker 绑定安装到您的路径
指定。 如果您提供一个 姓名, Docker 通过它创建一个命名卷 姓名。 例如,
你可以指定 /富 or FOO 查阅 主机目录 价值。 如果您提供 /富 值,
Docker 创建一个绑定挂载。 如果您提供 FOO 规范,Docker 创建了一个命名的
卷。

您可以指定多个 -v 将一个或多个安装安装到容器的选项。 使用
其他容器中的这些相同安装,请指定 --volumes-来自 选项也。

您可以添加 :罗 or :rw 后缀卷以只读或读写模式安装它,
分别。 默认情况下,卷以读写方式安装。 请参阅示例。

像 SELinux 这样的标签系统要求在卷内容上放置正确的标签
安装到容器中。 如果没有标签,安全系统可能会阻止进程
使用内容在容器内运行。 默认情况下,Docker 不会改变
操作系统设置的标签。

要更改容器上下文中的标签,您可以添加两个后缀之一 :z or :Z
卷安装。 这些后缀告诉 Docker 重新标记共享上的文件对象
卷。 这 z 选项告诉 Docker 两个容器共享卷内容。 作为一个
结果,Docker 使用共享内容标签标记内容。 共享卷标允许
读取/写入内容的所有容器。 这 Z 选项告诉 Docker 将内容标记为
私有的未共享标签。 只有当前容器可以使用私有卷。

默认情况下绑定安装的卷是 私立. 这意味着在容器内完成的任何安装
在主机上将不可见,反之亦然。 可以通过指定一个
卷挂载传播属性。 制作卷 共用的, 在该卷下完成的挂载
容器内部将在主机上可见,反之亦然。 制作卷 奴隶 使
只有一种方式挂载传播,即在该卷下的主机上完成挂载
在容器内可见,但反之则不可见。

要控制卷的挂载传播属性,可以使用 :[r] 共享, :[r] 奴隶 or
:[r] 私人的 传播标志。 只能为绑定安装指定传播属性
卷而不是内部卷或命名卷。 使挂载传播工作
源安装点(安装源目录的安装点)必须具有正确的
传播特性。 对于共享卷,必须共享源安装点。 而对于
从卷,源安装必须是共享的或从属的。

使用 df 找出源安装然后使用 发现 -o
目标,传播 找出源的传播特性
山。 如果 发现 实用程序不可用,然后可以查看源的挂载条目
挂载点在 /proc/self/挂载信息。 看着 可选 领域 看看有没有宣传
属性被指定。 共享:X 意味着 mount 是 共用的,, 主人:X 意味着 mount 是 奴隶
如果什么都没有,那意味着 mount 是 私立.

要更改挂载点的传播属性,请使用 安装 命令。 例如,如果一个
想绑定挂载源目录 /富 一个可以做 安装 --绑定 /富 /富安装
--私有化 --make-共享 /富. 这会将 /foo 转换为 共用的, 挂载点。
或者,可以直接更改源安装的传播属性。 说 / is
源安装 /富,然后使用 安装 --make-共享 / 转换 /共用的, 山。

备注: 使用systemd管理Docker daemon的启动和停止时,在
systemd 单元文件有一个选项来控制 Docker 的挂载传播
守护进程本身,称为 挂载标志. 这个设置的值可能会导致 Docker 不
请参阅在挂载点上进行的挂载传播更改。 例如,如果这个值
is 奴隶,您可能无法使用 共用的, or 共享 在卷上传播。

--音量驱动=“”
容器的卷驱动程序。 此驱动程序创建指定的卷
一个 Dockerfile 音量 指令或从 搬运工人 运行 -v 旗。
我们 码头工人卷创建(1) 完整的细节。

--volumes-来自=[]
从指定的容器挂载卷

将已经安装的卷从一个源容器安装到另一个
容器。 您必须提供源的容器 ID。 分享
一个卷,使用 --volumes-来自 运行时的选项
目标容器。 即使源容器,您也可以共享卷
没有运行。

默认情况下,Docker 以相同的模式(读写或
只读),因为它安装在源容器中。 可选地,您
可以通过为容器 ID 添加后缀来改变这一点 :罗 or
:rw 关键词。

如果来自源容器的卷的位置与
数据驻留在目标容器上,然后卷隐藏
目标上的数据。

-w, --工作目录=“”
容器内的工作目录

在容器中运行二进制文件的默认工作目录是根
目录 (/)。 开发人员可以使用 Dockerfile WORKDIR 设置不同的默认值
操作说明。 操作员可以使用 -w 选项。

Exit 退出 Status


退出代码来自 搬运工人 运行 提供有关容器无法运行的原因的信息或
为什么它退出。 什么时候 搬运工人 运行 以非零代码退出,退出代码遵循
chroot 标准见下:

125 if 错误 is 码头工人 守护 本身

$ docker run --foo busybox; 回声 $?
# 提供但未定义的标志:--foo
请参阅“docker run --help”。
125

126 if 包含 命令 不能 be 调用

$ 搬运工运行忙箱 /等; 回声 $?
# 执行:“/等“: 没有权限
docker:来自守护进程的错误响应:无法调用包含的命令
126

127 if 包含 命令 不能 be 发现

$ docker run busybox foo; 回声 $?
# exec: "foo": 在 $PATH 中找不到可执行文件
docker:来自守护进程的错误响应:包含的命令未找到或不存在
127

Exit 退出 of 包含 命令 除此以外

$ 搬运工运行忙箱 / bin / sh的 -c '退出 3'
#3

示例


运行 容器 in 唯读 模式


在容器镜像开发过程中,容器经常需要写入镜像内容。
安装包到 在/ usr, 例如。 在生产中,应用程序很少需要
写入图像。 容器应用程序在需要写入文件时写入卷
系统。 通过在只读模式下运行应用程序可以使应用程序更加安全
使用 --read-only 开关。 这可以保护容器镜像不被修改。 读
只有容器可能仍然需要写入临时数据。 处理这个问题的最好方法是
挂载 tmpfs 目录 / 跑 和/tmp。

# docker run --read-only --tmpfs / 跑 --tmpfs / tmp目录 -i -t 软呢帽 / bin / bash

曝光 日志 条未读消息 容器 主持人的 日志


如果您希望容器中记录的消息显示在主机的
syslog/journal 那么你应该如下绑定挂载 /dev/log 目录。

# docker run -v /dev/log:/dev/log -i -t fedora / bin / bash

从容器内部,您可以通过向日志发送消息来测试这一点。

(bash)# logger "Hello from my container"

然后退出并查看日志。

# 出口

# journalctl -b | 你好

这应该列出发送到记录器的消息。

附上 一种 or 更多 标准输入, 标准输出, 斯特德


如果您不指定 -a,则 Docker 将附加您想要的所有内容(stdin、stdout、stderr)
喜欢连接,如:

# docker run -a stdin -a stdout -i -t fedora / bin / bash

共享 IPC 之间 集装箱


使用此处提供的 shm_server.c:⟨https://www.cs.cf.ac.uk/Dave/C/node27.html⟩

测试 --ipc=主机 模式:

主机显示了一个带有 7 个 pid 的共享内存段,恰好来自 httpd:

$ 须藤 ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态
0x01128e25 0 根 600 1000 7

现在运行一个常规容器,它正确地没有看到来自
主人:

$ docker run -it shm ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态

使用新的容器运行 --ipc=主机 选项,它现在可以看到共享内存段
来自主机 httpd:

$ docker run -it --ipc=主机 shm ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态
0x01128e25 0 根 600 1000 7

测试 --ipc=容器:CONTAINERID 模式:

用一个程序启动一个容器来创建一个共享内存段:

$ docker run -it shm bash
$须藤shm/shm_server
$ 须藤 ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态
0x0000162e 0 根 666 27 1

创建第二个容器正确显示没有来自第一个容器的共享内存段:

$ docker run shm ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态

使用新的 --ipc=container:CONTAINERID 选项创建第三个容器,现在它显示
第一个共享内存段:

$ docker run -it --ipc=container:ed735b2264ac shm ipcs -m
$ 须藤 ipcs -m

------ 共享内存段 --------
密钥 shmid 所有者 perms 字节 nattch 状态
0x0000162e 0 根 666 27 1

链接 集装箱


备注:本节描述默认(桥)上的容器之间的链接
网络,也称为“遗留链接”。 使用 - 关联 在用户定义的网络上使用
基于 DNS 的发现,它不会将条目添加到 / etc / hosts文件,并且没有设置
用于发现的环境变量。

链接功能允许多个容器相互通信。 例如,一个
Dockerfile 暴露了端口 80 的容器可以运行并命名如下:

# docker run --name=link-test -d -i -t fedora/httpd

第二个容器,在本例中称为链接器,可以与 httpd 容器通信,
命名链接测试,通过运行 --link= :

# docker run -t -i --link=link-test:lt --name=链接器 fedora / bin / bash

现在容器链接器链接到别名为 lt 的容器链接测试。 运行
ENV 链接器容器中的命令显示环境变量
使用 LT(别名)上下文 (LT_)

#环境
主机名=668231cb0978
术语=xterm
LT_PORT_80_TCP=tcp://172.17.0.3:80
LT_PORT_80_TCP_PORT=80
LT_PORT_80_TCP_PROTO=TCP
LT_PORT=tcp://172.17.0.3:80
路径=/ usr / local / sbin:在/ usr / local / bin目录:/ usr / sbin:/ usr / bin:/宾:/箱
手残=/
LT_NAME=/链接器/lt
SLVL=1
主页=/
LT_PORT_80_TCP_ADDR=172.17.0.3
_=/usr/bin/环境

当链接两​​个容器时,Docker 将使用容器的暴露端口来创建一个
供父母访问的安全隧道。

如果容器连接到默认桥接网络并且 链接 与其他
容器,然后容器的 / etc / hosts文件 文件更新为链接容器的
名称。

备注 由于 Docker 可能会实时更新容器的 / etc / hosts文件 文件,可能有
容器内的进程可能最终读取空或
不完整 / etc / hosts文件 文件。 在大多数情况下,再次重试读取应该可以解决
问题。

地图绘制 端口 外部 用法


应用程序的公开端口可以使用以下命令映射到主机端口 -p 旗帜。 为了
例如,可以使用以下命令将 httpd 端口 80 映射到主机端口 8080:

# docker run -p 8080:80 -d -i -t fedora/httpd

创造 安装 a 时间 音量 容器


许多应用程序需要跨多个容器共享持久数据。 码头工人
允许您创建一个数据卷容器,其他容器可以从中挂载。 为了
例如,创建一个包含目录 /var/volume1 和 /tmp/volume2 的命名容器。
图像将需要包含这些目录,所以几个 RUN mkdir 指令
您可能需要 fedora-data 镜像:

# docker run --name=data -v /var/volume1 -v /tmp/volume2 -i -t fedora-data true
# docker run --volumes-from=data --name=fedora-container1 -i -t fedora bash

多个 --volumes-from 参数会将来自多个的多个数据卷汇集在一起
容器。 并且可以将来自 DATA 容器的卷挂载到
通过 fedora-container1 中间容器的另一个容器,允许
从该数据的用户那里抽象出实际的数据源:

# docker run --volumes-from=fedora-container1 --name=fedora-container2 -i -t fedora bash

安装 外部


要将主机目录挂载为容器卷,请指定该目录的绝对路径
目录和容器目录的绝对路径,以冒号分隔:

# docker run -v /var/db:/data1 -i -t fedora bash

使用 SELinux 时,请注意主机不了解容器 SELinux 策略。
因此,在上面的示例中,如果强制执行 SELinux 策略,则 /无功/数据库 目录是
不可写入容器。 将出现“权限被拒绝”消息和 avc:
主机的系统日志中的消息。

要解决此问题,在编写本手册页时,需要使用以下命令
运行以便将正确的 SELinux 策略类型标签附加到主机
目录:

# chcon -Rt svirt_sandbox_file_t /var/db

现在,将允许写入容器中的 /data1 卷,并且更改将
也反映在 /var/db 中的主机上。

运用 替代 保安 标签


您可以通过指定每个容器的默认标签方案
--安全-选择 旗帜。 例如,您可以指定 MCS/MLS 级别,这是 MLS 的要求
系统。 在以下命令中指定级别允许您共享相同的
容器之间的内容。

# docker run --security-opt label:level:s0:c100,c200 -i -t fedora bash

MLS 示例可能是:

# docker run --security-opt label:level:TopSecret -i -t rhel7 bash

禁用此容器的安全标签而不是使用 --宽容
标志,使用以下命令:

# docker run --security-opt label:disable -i -t fedora bash

如果您想对容器内的进程实施更严格的安全策略,您可以指定
容器的替代类型。 你可以运行一个只允许的容器
通过执行以下命令监听 Apache 端口:

# docker run --security-opt 标签:类型:svirt_apache_t -i -t centos bash

请注意:

你将不得不编写定义一个的策略 svirt_apache_t 类型。

设置 设备 重量


如果你想设置 / dev / sda上的 设备重量 200,您可以通过以下方式指定设备权重
--blkio-重量设备 旗帜。 使用以下命令:

# docker run -it --blkio-weight-device "/dev/sda:200" ubuntu

指定 隔离 技术 容器 ( - 隔离)


此选项在您在 Microsoft 上运行 Docker 容器的情况下很有用
视窗。 这 - 隔离 option 设置容器的隔离技术。 在 Linux 上,
唯一支持的是 默认 使用 Linux 命名空间的选项。 这两个命令
在 Linux 上是等价的:

$ docker run -d busybox 顶部
$ docker run -d --isolation 默认busybox top

在 Microsoft Windows 上,可以采用以下任何值:

· 默认: 使用 Docker 守护进程指定的值 --执行选项 。 如果 守护
未指定隔离技术,Microsoft Windows 使用 过程 作为其默认值
计算值。

· 过程: 仅命名空间隔离。

· 超频:Hyper-V 管理程序基于分区的隔离。

实际上,当在 Microsoft Windows 上运行时 守护 选项集,这两个
命令是等效的:

$ docker run -d --isolation 默认busybox top
$ docker run -d --isolation 进程busybox top

如果您设置了 --执行选项 隔离=超级 Docker 上的选项 守护,其中任何一个
命令也会导致 超频 隔离:

$ docker run -d --isolation 默认busybox top
$ docker run -d --isolation hyperv busybox top

历史


2014 年 XNUMX 月,最初由 William Henry (whenry at redhat dot com) 编译,基于
docker.com 源材料和内部工作。 2014 年 XNUMX 月,由 Sven Dowideit 更新
[电子邮件保护]⟩ 2014 年 XNUMX 月,由 Sven Dowideit 更新 ⟨[电子邮件保护]
2015 年 XNUMX 月,由 Sally O'Malley 更新 ⟨[电子邮件保护]

使用 onworks.net 服务在线使用 docker-run


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad