非常教程

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也是)。例如,这可以让你createdata体积的容器中,然后用它从另一个容器:

$ 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。此选项仅适用于devicemapperbtrfsoverlay2windowsfilterzfs图形驱动程序。对于devicemapperbtrfswindowsfilterzfs图形驱动程序,用户无法通过的尺寸小于默认尺寸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相关

1.守护进程CLI参考(dockerd)(引擎) | Daemon CLI reference (dockerd) (Engine)
2.docker
3.docker attach
4.docker build
5.docker checkpoint
6.docker checkpoint create
7.docker checkpoint ls
8.docker checkpoint rm
9.docker commit
10.docker config
11.docker config create
12.docker config inspect
13.docker config ls
14.docker config rm
15.docker container
16.docker container attach
17.docker container commit
18.docker container cp
19.docker container create
20.docker container diff
21.docker container exec
22.docker container export
23.docker container inspect
24.docker container kill
25.docker container logs
26.docker container ls
27.docker container pause
28.docker container port
29.docker container prune
30.docker container rename
31.docker container restart
32.docker container rm
33.docker container run
34.docker container start
35.docker container stats
36.docker container stop
37.docker container top
38.docker container unpause
39.docker container update
40.docker container wait
41.docker cp
42.docker deploy
43.docker diff
44.docker events
45.docker exec
46.docker export
47.docker history
48.docker image
49.docker image build
50.docker image history
51.docker image import
52.docker image inspect
53.docker image load
54.docker image ls
55.docker image prune
56.docker image pull
57.docker image push
58.docker image rm
59.docker image save
60.docker image tag
61.docker images
62.docker import
63.docker info
64.docker inspect
65.docker kill
66.docker load
67.docker login
68.docker logout
69.docker logs
70.docker network
71.docker network connect
72.docker network create
73.docker network disconnect
74.docker network inspect
75.docker network ls
76.docker network prune
77.docker network rm
78.docker node
79.docker node demote
80.docker node inspect
81.docker node ls
82.docker node promote
83.docker node ps
84.docker node rm
85.docker node update
86.docker pause
87.docker plugin
88.docker plugin create
89.docker plugin disable
90.docker plugin enable
91.docker plugin inspect
92.docker plugin install
93.docker plugin ls
94.docker plugin push
95.docker plugin rm
96.docker plugin set
97.docker plugin upgrade
98.docker port
99.docker ps
100.docker pull
Docker 17

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

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06