Docker 17参考手册
引擎: CLI | Engine: CLI
docker create
描述
创建一个新容器
使用
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
备选方案
名字,简写 |
默认 |
描述 |
---|---|---|
--add-host |
|
添加自定义的主机到IP映射(主机:IP) |
--attach, -a |
|
附加到STDIN,STDOUT或STDERR |
--blkio-weight |
0 |
阻止IO(相对权重),介于10和1000之间,或0禁用(默认值为0) |
--blkio-weight-device |
|
块IO重量(相对设备重量) |
--cap-add |
|
添加Linux功能 |
--cap-drop |
|
删除Linux功能 |
--cgroup-parent |
|
容器的可选父cgroup |
--cidfile |
|
将容器ID写入文件 |
--cpu-count |
0 |
CPU数量(仅限Windows) |
--cpu-percent |
0 |
CPU百分比(仅限Windows) |
--cpu-period |
0 |
限制CPU CFS(完全公平调度程序)期间 |
--cpu-quota |
0 |
限制CPU CFS(完全公平调度程序)配额 |
--cpu-rt-period |
0 |
限制CPU实时周期(以微秒为单位) |
--cpu-rt-runtime |
0 |
以微秒为单位限制CPU实时运行时间 |
--cpu-shares,-c |
0 |
CPU份额(相对重量) |
--cpus |
|
CPU数量 |
--cpuset-cpus |
|
允许执行的CPU(0-3,0,1) |
--cpuset-MEMS |
|
允许执行的MEM(0-3,0,1) |
--device |
|
将主机设备添加到容器 |
--device-cgroup-rule |
|
将规则添加到cgroup允许的设备列表 |
--device-read-bps |
|
限制设备的读取速率(每秒字节数) |
--device-read-iops |
|
限制设备的读取速率(每秒IO) |
--device-write-bps |
|
限制写入速率(每秒字节数)到设备 |
--device-write-iops |
|
限制写入速率(每秒IO)到设备 |
--disable-content-trust |
真正 |
跳过图像验证 |
--dns |
|
设置自定义DNS服务器 |
--dns-OPT |
|
设置DNS选项 |
--dns-option |
|
设置DNS选项 |
--dns-search |
|
设置自定义DNS搜索域 |
--entrypoint |
|
覆盖图像的默认入口点 |
--env,-e |
|
设置环境变量 |
--env-file |
|
读入环境变量文件 |
--expose |
|
公开一个端口或一系列端口 |
--group-add |
|
添加其他群组加入 |
--health-cmd |
|
运行以检查运行状况的命令 |
--health-interval |
0 |
运行检查之间的时间(ms | s | m | h)(默认为0) |
--health-retries |
0 |
需要报告不健康的连续失败 |
--health-start-period |
0 |
启动健康重试倒数前,容器初始化的开始时间段(ms | s | m | h)(默认为0) |
--health-timeout |
0 |
允许一次检查运行的最长时间(ms | s | m | h)(默认值为0) |
--help |
假 |
打印用法 |
--hostname,-h |
|
容器主机名称 |
--init |
假 |
在容器中运行一个转发信号并收集进程的init |
--interactive, -i |
假 |
即使没有连接,也要保持STDIN打开 |
--io-MaxBandwidth |
0 |
系统驱动器的最大IO带宽限制(仅限Windows) |
--io-maxiops |
0 |
系统驱动器的最大IOps限制(仅限Windows) |
--ip |
|
IPv4地址(例如172.30.100.104) |
--ip6 |
|
IPv6地址(例如,2001:db8 :: 33) |
--ipc |
|
IPC命名空间使用 |
--isolation |
|
容器隔离技术 |
--kernel-memory |
0 |
内核内存限制 |
--label, -l |
|
在容器上设置元数据 |
--label-file |
|
阅读标签的行分隔文件 |
--link |
|
将链接添加到其他容器 |
--link-local-ip |
|
Container IPv4 / IPv6链路本地地址 |
--log-driver |
|
记录容器的驱动程序 |
--log-OPT |
|
日志驱动选项 |
--mac-address |
|
容器MAC地址(例如,92:d0:c6:0a:29:33) |
--memory, -m |
0 |
内存限制 |
--memory-reservation |
0 |
内存软限制 |
--memory-swap |
0 |
交换限制等于内存加交换:'-1'以启用无限交换 |
--memory-swappiness |
-1 |
调整容器内存swappiness(0到100) |
--mount |
|
将文件系统挂载附加到容器 |
--name |
|
为容器分配一个名称 |
--net |
默认 |
将容器连接到网络 |
--net-alias |
|
为容器添加网络范围的别名 |
--network |
默认 |
将容器连接到网络 |
--network-alias |
|
为容器添加网络范围的别名 |
--no-healthcheck |
假 |
禁用任何容器指定的HEALTHCHECK |
--oom-kill-disable |
假 |
禁用OOM杀手 |
--oom-score-adj |
0 |
调整主机的OOM首选项(从-1000到1000) |
--pid |
|
要使用的PID名称空间 |
--pids-limit |
0 |
调整容器匹配限制(无限制地设置-1) |
--privileged |
假 |
给这个容器赋予扩展权限 |
--publish,-p |
|
将容器的端口发布到主机 |
--publish-all,-P |
假 |
将所有暴露的端口发布到随机端口 |
--read-only |
假 |
将容器的根文件系统挂载为只读 |
--restart |
没有 |
重新启动策略以在容器退出时应用 |
--rm |
假 |
当容器退出时自动移除容器 |
--runtime |
|
运行时用于此容器 |
--security-opt |
|
安全选项 |
--shm-size |
0 |
/ dev / shm的大小 |
--stop-signal |
SIGTERM |
停止容器的信号 |
--stop-timeout |
0 |
超时(以秒为单位)停止容器 |
--storage-opt |
|
容器的存储驱动程序选项 |
--sysctl |
地图[] |
Sysctl选项 |
--tmpfs |
|
挂载一个tmpfs目录 |
--tty, -t |
假 |
分配一个伪TTY |
--ulimit |
|
Ulimit选项 |
--user,-u |
|
用户名或UID(格式:<名称| uid>:<组| gid>) |
--userns |
|
要使用的用户名称空间 |
--uts |
|
UTS命名空间使用 |
--volume, -v |
|
绑定安装一个卷 |
--volume-driver |
|
容器的可选卷驱动程序 |
--volumes-from |
|
从指定容器装载卷 |
--workdir,-w |
|
容器内的工作目录 |
父命令
命令 |
描述 |
---|---|
docker |
Docker CLI的基本命令。 |
扩展描述
docker create
命令在指定的映像上创建一个可写容器层,并为运行指定的命令做好准备。然后将容器ID打印到STDOUT
。这与docker run -d
容器永远不会启动的情况类似。然后您可以使用该docker start <container_id>
命令随时启动容器。
当您希望提前设置容器配置以便在需要时启动它时,这非常有用。新容器的初始状态是created
。
请看运行命令部分和码头运行参考更多细节。
实例
创建并启动容器
$ docker create -t -i fedora bash
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start -a -i 6d8af538ec5
bash-4.2#
初始化volume
从v1.4.0开始,容器卷在该docker create
阶段被初始化(即,docker run
也是)。例如,这可以让你create
的data
体积的容器中,然后用它从另一个容器:
$ docker create -v /data --name data ubuntu
240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
$ docker run --rm --volumes-from data ubuntu ls -la /data
total 8
drwxr-xr-x 2 root root 4096 Dec 5 04:10 .
drwxr-xr-x 48 root root 4096 Dec 5 04:11 ..
同样,create
主机目录绑定安装的卷容器,然后可以从后续容器中使用该容器:
$ docker create -v /home/docker:/docker --name docker ubuntu
9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03
$ docker run --rm --volumes-from docker ubuntu ls -la /docker
total 20
drwxr-sr-x 5 1000 staff 180 Dec 5 04:00 .
drwxr-xr-x 48 root root 4096 Dec 5 04:13 ..
-rw-rw-r-- 1 1000 staff 3833 Dec 5 04:01 .ash_history
-rw-r--r-- 1 1000 staff 446 Nov 28 11:51 .ashrc
-rw-r--r-- 1 1000 staff 25 Dec 5 04:00 .gitconfig
drwxr-sr-x 3 1000 staff 60 Dec 1 03:28 .local
-rw-r--r-- 1 1000 staff 920 Nov 28 11:51 .profile
drwx--S--- 2 1000 staff 460 Dec 5 00:51 .ssh
drwxr-xr-x 32 1000 staff 1140 Dec 5 04:01 docker
设置每个容器的存储驱动程序选项。
$ docker create -it --storage-opt size=120G fedora /bin/bash
这个(大小)将允许在创建时将容器rootfs大小设置为120G。此选项仅适用于devicemapper
,btrfs
,overlay2
,windowsfilter
和zfs
图形驱动程序。对于devicemapper
,btrfs
,windowsfilter
和zfs
图形驱动程序,用户无法通过的尺寸小于默认尺寸BaseFS。对于overlay2
存储驱动程序,大小选项仅在支持fs为xfs
并使用pquota
安装选项安装时可用。在这些条件下,用户可以通过任何小于支持fs大小的大小。
指定容器的隔离技术(隔离)
在Windows上运行Docker容器的情况下,此选项很有用。该--isolation=<value>
选项设置容器的隔离技术。在Linux上,唯一支持的是default
使用Linux命名空间的选项。在Microsoft Windows上,您可以指定这些值:
值 |
描述 |
---|---|
默认 |
使用Docker守护进程的--exec-opt指定的值。如果守护进程未指定隔离技术,则Microsoft将使用进程作为其默认值 |
守护进程在Windows服务器上运行,如果在Windows客户端上运行,则守护进程运行在hyperv上。 |
|
process |
仅命名空间隔离。 |
Hyper-V |
基于Hyper-V管理程序分区的隔离。 |
指定--isolation
没有值的标志与设置--isolation="default"
相同。
处理动态创建的设备(-device-cgroup-rule)
在创建时分配可用于容器的设备。分配的设备都将被添加到cgroup.allow文件,并在运行后创建到容器中。当需要将新设备添加到正在运行的容器时,这会造成问题。
解决方案之一是向容器添加更宽松的规则,以允许访问更广泛的设备。例如,假设我们的容器需要访问具有主要42
和任意次数的字符设备(添加为新设备出现),则会添加以下规则:
docker create --device-cgroup-rule='c 42:* rmw' -name my-container my-image
然后,用户可能会要求udev
执行脚本,docker exec my-container mknod newDevX c 42 <minor>
以便在添加所需设备时使用该脚本。
注意:最初存在的设备仍然需要明确地添加到 create / run 命令中
引擎: CLI | Engine: CLI相关

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
主页 | https://docker.com/ |
源码 | https://github.com/docker/docker |
版本 | 17 |
发布版本 | 17.06 |