1. docker create

1.1. 描述

创建一个新容器。

使用该命令创建的容器并不会自动运行,创建完成后还需要使用 docker start 命令将容器运行起来。

使用 docker run 命令可以同时完成容器的创建和运行。

1.2. 帮助

$ docker create --help

Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Create a new container

Options:
      --add-host list Add a custom host-to-IP mapping (host:ip)
  -a, --attach list Attach to STDIN, STDOUT or STDERR
      --blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --blkio-weight-device list Block IO weight (relative device weight) (default [])
      --cap-add list Add Linux capabilities
      --cap-drop list Drop Linux capabilities
      --cgroup-parent string Optional parent cgroup for the container
      --cidfile string Write the container ID to the file
      --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
      --cpu-rt-period int Limit CPU real-time period in microseconds
      --cpu-rt-runtime int Limit CPU real-time runtime in microseconds
  -c, --cpu-shares int CPU shares (relative weight)
      --cpus decimal Number of CPUs
      --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
      --device list Add a host device to the container
      --device-cgroup-rule list Add a rule to the cgroup allowed devices list
      --device-read-bps list Limit read rate (bytes per second) from a device (default [])
      --device-read-iops list Limit read rate (IO per second) from a device (default [])
      --device-write-bps list Limit write rate (bytes per second) to a device (default [])
      --device-write-iops list Limit write rate (IO per second) to a device (default [])
      --disable-content-trust Skip image verification (default true)
      --dns list Set custom DNS servers
      --dns-option list Set DNS options
      --dns-search list Set custom DNS search domains
      --entrypoint string Overwrite the default ENTRYPOINT of the image
  -e, --env list Set environment variables
      --env-file list Read in a file of environment variables
      --expose list Expose a port or a range of ports
      --group-add list Add additional groups to join
      --health-cmd string Command to run to check health
      --health-interval duration Time between running the check (ms|s|m|h) (default 0s)
      --health-retries int Consecutive failures needed to report unhealthy
      --health-start-period duration Start period for the container to initialize before starting health-retries
                                       countdown (ms|s|m|h) (default 0s)
      --health-timeout duration Maximum time to allow one check to run (ms|s|m|h) (default 0s)
      --help Print usage
  -h, --hostname string Container host name
      --init Run an init inside the container that forwards signals and reaps processes
  -i, --interactive Keep STDIN open even if not attached
      --ip string IPv4 address (e.g., 172.30.100.104)
      --ip6 string IPv6 address (e.g., 2001:db8::33)
      --ipc string IPC mode to use
      --isolation string Container isolation technology
      --kernel-memory bytes Kernel memory limit
  -l, --label list Set meta data on a container
      --label-file list Read in a line delimited file of labels
      --link list Add link to another container
      --link-local-ip list Container IPv4/IPv6 link-local addresses
      --log-driver string Logging driver for the container
      --log-opt list Log driver options
      --mac-address string Container MAC address (e.g., 92:d0:c6:0a:29:33)
  -m, --memory bytes Memory limit
      --memory-reservation bytes Memory soft limit
      --memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
      --mount mount Attach a filesystem mount to the container
      --name string Assign a name to the container
      --network string Connect a container to a network (default "default")
      --network-alias list Add network-scoped alias for the container
      --no-healthcheck Disable any container-specified HEALTHCHECK
      --oom-kill-disable Disable OOM Killer
      --oom-score-adj int Tune host's OOM preferences (-1000 to 1000)
      --pid string PID namespace to use
      --pids-limit int Tune container pids limit (set -1 for unlimited)
      --platform string Set platform if server is multi-platform capable
      --privileged Give extended privileges to this container
  -p, --publish list Publish a container's port(s) to the host
  -P, --publish-all Publish all exposed ports to random ports
      --read-only Mount the container's root filesystem as read only
      --restart string Restart policy to apply when a container exits (default "no")
      --rm Automatically remove the container when it exits
      --runtime string Runtime to use for this container
      --security-opt list Security Options
      --shm-size bytes Size of /dev/shm
      --stop-signal string Signal to stop a container (default "SIGTERM")
      --stop-timeout int Timeout (in seconds) to stop a container
      --storage-opt list Storage driver options for the container
      --sysctl map Sysctl options (default map[])
      --tmpfs list Mount a tmpfs directory
  -t, --tty Allocate a pseudo-TTY
      --ulimit ulimit Ulimit options (default [])
  -u, --user string Username or UID (format: <name|uid>[:<group|gid>])
      --userns string User namespace to use
      --uts string UTS namespace to use
  -v, --volume list Bind mount a volume
      --volume-driver string Optional volume driver for the container
      --volumes-from list Mount volumes from the specified container(s)
  -w, --workdir string Working directory inside the container

1.3. 选项

选项, 简写 数据类型 默认值 描述
--add-host list - 在容器内添加一条主机名和 IP 的对应关系(通过 /etc/hosts )
-a, --attach=[] list - 将标准输入、标准输出、标准错误绑定到容器
--blkio-weight uint16 0 容器读写块设备的 IO 心梗权重,范围是 10 ~ 1000,默认为 0 禁用限制
--blkio-weight-device list [] 指定个块设备的 IO 权重,格式 [DEVICE:WEEIGHT] 默认 [] 不指定
--cap-add list - 增加 Linux capabilities 安全能力,设置容器中使用的 cgroups 的特定 capablity,若设置为 all 则使用所有的 capablity
--cap-drop list - 移除 Linux capabilities 安全能力,从容器中删除 cgroup 的特定 capablity
--cgroup-parent string - 容器 cgroups 限制的创建路径
--cgroupns string '' API 1.41+ 为容器配置 Cgroup 命名空间,可配置 host 或private。host Run the container in the Docker host's cgroup namespace。private Run the container in its own private cgroup namespace。'' Use the cgroup namespace as configured by the。default-cgroupns-mode option on the daemon (default)
--cidfile string - 设置 cid 文件路径,cid 文件中存储着所创建容器的 ID
--cpu-period int - 限制容器在 CFS 调度器下 CPU 占用时间片
--cpu-quota int - 限制容器在 CFS 调度器下 CPU 配额
--cpu-rt-period int - API 1.25+ Limit CPU real-time period in microseconds
--cpu-rt-runtime int - API 1.25+ Limit CPU real-time runtime in microseconds
-c, --cpu-shares int - 允许容器使用的 CPU 资源(相对权重)
--cpus decimal - API 1.25+ 在多核 CPU 中设置要运行容器的核心数
--cpuset decimal - 在多核 CPU 中设置要运行容器的核心数,新版本使用 --cpus 参数
--cpuset-cpus string - 配置容器使用那些 CPU 核心 (0-3, 0,1)
--cpuset-mems string - NUMA 架构下使用哪些核的内存 (0-3, 0,1)
--device list - 映射宿主机上的设备到容器中,格式为<主机设备>:<容器设备>
--device-cgroup-rule list - Add a rule to the cgroup allowed devices list
--device-read-bps list [] 挂载设备的数据读带宽(单位bps)限制
--device-read-iops list [] 挂载设备的数据读 IOPS (单位io/s) 限制
--device-write-bps list [] 挂载设备的数据写带宽(单位bps)限制
--device-write-iops list [] 挂载设备的数据写 IOPS(单位io/s)限制
--disable-content-trust bool true Skip image verification (default true)
--dns list - 设置 /etc/resolv.conf 中 nameserver 配置
--dns-option list - 设置 /etc/resolv.conf 中 option 配置
--dns-search list - 设置 /etc/resolv.conf 中 search 配置
--domainname string - Container NIS domain name
--detach-keys string - 从 attache 模式退出的快捷键,新版本已移除
-d,--detach bool false 是否在后台运行容器,新版本已移除
--entrypoint string - 覆盖 Dockerfile 构建镜像时的默认 ENTRYPOINT 配置
-e, --env list - 设置容器内的 ENV 环境变量
--env-file list - 读取一个文件来设置容器的环境变量
--expose list - 声明一个或一段端口范围,和 Dockerfile 中 EXPOSE 类似,只是声明不会暴露,暴露需要使用 -p 选项。
--gpus gpu-request - API 1.40+ 将 GPU 设备添加到容器('all'可以添加所有宿主机的 GPU)
--group-add list - Add additional groups to join
--health-cmd string - 指定容器健康检查的命令
--health-interval duration 0s 2次健康检查之间的时间间隔 (单位:ms s m h) (default 0s)
--health-retries int - 连续出现多少次健康检查失败后,判定服务运行异常
--health-start-period duration 0s API 1.29+ 开始运行健康检查命令前等待容器启动的时间 (单位:ms s m h) (default 0s)
--health-timeout duration 0s 健康检查运行的最大时间 (单位:ms s m h) (default 0s)
--help - - 显示使用帮助
-h, --hostname= string - 设置容器主机名,
--init - - API 1.25+ 在容器内运行一个初始化程序,以转发信号并获取进程
-i, --interactive bool false 激活标准输入 STDIN,即使未与容器连接,也维持标准输入存在
--ip string - 配置容器的 IPV4 地址 (例如: 172.30.100.104)
--ip6 string - 配置容器的 IPv6 地址 (例如: 2001:db8::33)
--ipc string - 使用 IPC 模式,容器的 IPC 命令空间可以为其他容器或主机
--isolation string - 容器使用隔离机制
--kernel-memory bytes - 内核 Kernel 内存限制,
-l, --label list - 给容器设置 label 元数据
--label-file list - 通过按照行读取文件来给容器设置 label 元数据
--link list - 链接到其他容器,格式 <容器名称>:<别名>
--link-local-ip list - Container IPv4/IPv6 link-local addresses
--log-driver string - 为容器指定日志驱动,可选:json-file/syslog/journald/gelf/fluentd/awslogs/splunk/etwlogs/gcplogs/none
--log-opt list - 传递给日志驱动的选项
--lxc-conf - - 若使用 LXC 驱动则可设置 LXC 选项配置,新版本已经废弃
--mac-address string - 指定容器的 MAC 地址 (例如: 92:d0:c6:0a:29:33)
-m, --memory bytes - 限制容器使用内存(单位:b、k、m 或 g)
--memory-reservation bytes - 内存使用的软限制,但是当系统中内存不足时,容器会被强制限制内存为指定的值
--memory-swap bytes - 限制容器中使用 SWAP 内存的大小,设置为 '-1' 时为不限制
--memory-swappiness int -1 调整容器的 swappiness 参数 (0 to 100) (default -1)
--mount - - 挂载一个宿主机文件系统到容器中
--name string - 设置容器名称
--net - - 设置容器网络模式,可选:bridge、none、其他容器网络、host网络、或其他网络。新版本已废弃
--network network - 将一个容器和网络进行连接
--network-alias list - 容器在网络中的别名
--no-healthcheck - - Disable any container-specified HEALTHCHECK
--oom-kill-disable - - 禁用 OOM Killer
--oom-score-adj int - 调整容器 OOM 时的参数 (-1000 to 1000)
--pid string - 指定一个 PID 命名空间给该容器使用
--pids-limit int - 调整容器的 pid 炼制,设置为 -1 为不限制
--platform string - API 1.32+ Set platform if server is multi-platform capable
--privileged bool false 为容器提供扩展权限,可以在容器内部使用主机的所有linux内核功能,相当于容器能获取到宿主机最高的权限
-p, --publish list - 将容器内的端口映射到宿主机上,可以多次指定
-P, --publish-all - false 将 exposed 中声明的端口全部映射到宿主机上的随机端口
--read-only bool - 是否容器容器的文件系统只读
--restart string no 当容器退出时指定重启的策略,可选:no、on-failure[:max-retry]、always、unless-stopped等
--rm - - 当容器退出时自动删除该容器,不能和 -d 同时使用
--runtime string - 指定容器运行时
--security-opt list - 设置 SELinux、AppArmor选项,指定一些安全的参数包括权限、安全能力、apparmor 等
--shm-size bytes - 设置 /dev/shm 大小
--stop-signal string SIGTERM 停止容器的 Signal (default "SIGTERM")
--stop-timeout int - API 1.25+ 停止一个容器的超时时间 (单位: 秒)
--storage-opt list - 配置容器的存储驱动选项
--sysctl map [] 系统 Sysctl 选项 (default map[])
--tmpfs list - 挂载临时文件系统 tmpfs 到容器中
-t, --tty bool false 是否分配一个 TTY 伪终端给容器,以便可以连接登录到容器中
--ulimit ulimit [] 设置容器的 ulimit 参数来限制最大打开文件数量、进程数量等
-u, --user string - 设置容器运行时要使用的 Linux 用户账户或UID(格式: [:])
--userns string - 为容器设置 USER 命名空间
--uts string - 为容器设置 UTS 命名空间
-v, --volume list - 挂载数据卷,设置要与主机共享的目录,不将文件保存到容器而是直接保存到主机,在主机目录后添加:ro与:rw进行读写设置,默认未:rw。
--volume-driver string - 挂载文件卷驱动类型
--volumes-from list - 挂载数据卷容器,设置格式未<容器名称,id>:<:ro, :rw>,默认读写设置遵从-v选项的设置
-w, --workdir string - 设置容器内的工作目录,覆盖 Dockerfile 中指定的 WORKDIR

1.4. 示例

1.4.1. 创建并启动一个容器

$ docker create -t -i fedora bash

6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752

$ docker start -a -i 6d8af538ec5

bash-4.2#

1.4.2. 挂载存储到容器中

从 v1.4.0 开始,容器卷可以在 docker create 阶段被初始化配置(也可以在 docker run 时初始化)。

例如,可以创建一个数据容器,然后在另外一个容器中使用它:

$ 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 ..

当然也可以直接挂载宿主机的存储使用

$ 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

1.5. 参考

https://docs.docker.com/engine/reference/commandline/create/

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-03-13 11:28:02

results matching ""

    No results matching ""