create 命令使用指定的镜像创建容器。与run命令不同,使用create命令只能创建容器而并不启动

Docker技术问答:http://linux.xyz/topic/Docker

$ docker create <选项><镜像名称,id><命令><参数>

-a 、--attach=[] 将标准输入、标准输出、标准错误链接到容器

--attach="stdin"

--add-host=[] 向容器的/etc/hosts添加主机名与IP地址

--add-host=hello:192.168.0.1

-C、--cpu-shares=0 设置cup资源分配。默认是这值为1024,各值为相对值

若设置为--cpu-shares=2048, 则分配默认值为2倍的CPU资源 在Linux内核的cgroups中使用该设置的值

--cap-add[] 设置容器中使用的cgroups的特定Capablity。若设置为ALL,则使用所有的Capablity

--cap-drop=[] 从容器删除cgroup的特定Capablity

--cidfile="" 设置cid文件路径。cid中存储着所创建容器的id

--cpuset="" 在多核CPU中设置要运行容器的核心数

若设置--cpuset="0,1" 则使用第一与第二个cup 若这是--cupset="0-2" 则使用从第一到第三个cup

--device=[] 添加主机设备到容器,格式为<主机设备>:<容器设备>

若设置为 --device="/dev/sda1:/dev/sda1",则在容器中也可以使用主机的/dev/sda1块设备

--dns=[] 设置容器中要用到的DNS服务器

--dns-search=[] 设置docker要使用的DNS搜索域。

-e、--env=[] 向容器设置环境变量。一般用于传递设置或者密码

如:-e MYSQL_ROOT_PASSWORD=root

--entrypoint="" 忽略Dockerfile的ENTRYPOINT设置,强制设置为其他值。

如:--entrypoint="/bin/bash"

--env-file=[] 向容器应用设置环境变量文件

--expose=[] 仅连接容器的端口与主机,并不暴露在外

--expose="3306"

-h、--hostname="" 设置容器主机名

-i、--interactive=false 激活标准输入,即使未与容器连接(attach),也维持标准输入。一般使用该选项向Bash输入命令

--link=[] 进行容器连接,格式为<容器名称>:<别名>

--link mysql-server:mysql

--lxc-conf=[] 若使用LXC驱动,则可以设置LXC选项

--lxc-conf="lxc.cgroup.cpuset.cpu = 0,1"

-m、--memory="" 设置内存限制,格式为<数字><单位>,单位可以使用b,k,m,g

--memory="512m"

--name 设置容器名称

--net="bridge" 设置容器的网络模式(选项可以是:bridge,none,container,host)

-P、--publish-all=false 将连接到主机的容器的所有端口暴露在外

-p、--publish=[] 将连接到主机的容器的特定端口暴露在外。一般主要用于暴露web服务器的端口

--privileged=false 在容器内部使用主机的所有Linux内核功能

--restart="" 设置容器内部进程终止时重启策略

--restart=no 即使进程终止也不重启 --restart="on-failure" 仅当进程的Exit Code 不为0时执行重启。也可以设置重置次数。若不设置重试次数,这不断重启。如 --restart="no-failure:10" --restart="always" 不受Exit Code的影响,总是重启

--security-opt=[] 设置SELinux、AppArmor 选项

-t、--tty=false 使用TTY模式(pseudo-TTY)。若要使用Bash,则必须设置该选项。若不设置该选项,则可以输入命令,但不显示shell

-u、--user="" 设置容器运行时要使用的Linux用户账户与UID

-v、--volume=[] 设置数据卷。设置要与主机共享目录,不将文件保存到容器,而直接保存到主机。在主机目录后添加 :ro、:rw进行读写设置,默认为:rw。

--volumes-from=[] 连接数据卷容器,设置格式为<容器名,id>:<:ro, :rw> 默认情形下,读写设置遵从-v选项的设置。

-w、--workdir="" 设置容器内部要运行进程的目录

运行如下命令,创建容器

$ docker create -it --name hello ubuntu /bin/bash

若想使用刚刚创建的容器,则必须使用docker start 命令启动容器

$ docker start hello

进入容器内部

$ docker attach hello