github.com/hustcat/docker@v1.3.3-0.20160314103604-901c67a8eeab/docs/reference/commandline/run.md (about) 1 <!--[metadata]> 2 +++ 3 title = "run" 4 description = "The run command description and usage" 5 keywords = ["run, command, container"] 6 [menu.main] 7 parent = "smn_cli" 8 +++ 9 <![end-metadata]--> 10 11 # run 12 13 Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 14 15 Run a command in a new container 16 17 -a, --attach=[] Attach to STDIN, STDOUT or STDERR 18 --add-host=[] Add a custom host-to-IP mapping (host:ip) 19 --blkio-weight=0 Block IO weight (relative weight) 20 --blkio-weight-device=[] Block IO weight (relative device weight, format: `DEVICE_NAME:WEIGHT`) 21 --cpu-shares=0 CPU shares (relative weight) 22 --cap-add=[] Add Linux capabilities 23 --cap-drop=[] Drop Linux capabilities 24 --cgroup-parent="" Optional parent cgroup for the container 25 --cidfile="" Write the container ID to the file 26 --cpu-period=0 Limit CPU CFS (Completely Fair Scheduler) period 27 --cpu-quota=0 Limit CPU CFS (Completely Fair Scheduler) quota 28 --cpuset-cpus="" CPUs in which to allow execution (0-3, 0,1) 29 --cpuset-mems="" Memory nodes (MEMs) in which to allow execution (0-3, 0,1) 30 -d, --detach Run container in background and print container ID 31 --detach-keys Specify the escape key sequence used to detach a container 32 --device=[] Add a host device to the container 33 --device-read-bps=[] Limit read rate (bytes per second) from a device (e.g., --device-read-bps=/dev/sda:1mb) 34 --device-read-iops=[] Limit read rate (IO per second) from a device (e.g., --device-read-iops=/dev/sda:1000) 35 --device-write-bps=[] Limit write rate (bytes per second) to a device (e.g., --device-write-bps=/dev/sda:1mb) 36 --device-write-iops=[] Limit write rate (IO per second) to a device (e.g., --device-write-bps=/dev/sda:1000) 37 --disable-content-trust=true Skip image verification 38 --dns=[] Set custom DNS servers 39 --dns-opt=[] Set custom DNS options 40 --dns-search=[] Set custom DNS search domains 41 -e, --env=[] Set environment variables 42 --entrypoint="" Overwrite the default ENTRYPOINT of the image 43 --env-file=[] Read in a file of environment variables 44 --expose=[] Expose a port or a range of ports 45 --group-add=[] Add additional groups to run as 46 -h, --hostname="" Container host name 47 --help Print usage 48 -i, --interactive Keep STDIN open even if not attached 49 --ip="" Container IPv4 address (e.g. 172.30.100.104) 50 --ip6="" Container IPv6 address (e.g. 2001:db8::33) 51 --ipc="" IPC namespace to use 52 --isolation="" Container isolation technology 53 --kernel-memory="" Kernel memory limit 54 -l, --label=[] Set metadata on the container (e.g., --label=com.example.key=value) 55 --label-file=[] Read in a file of labels (EOL delimited) 56 --link=[] Add link to another container 57 --log-driver="" Logging driver for container 58 --log-opt=[] Log driver specific options 59 -m, --memory="" Memory limit 60 --mac-address="" Container MAC address (e.g. 92:d0:c6:0a:29:33) 61 --memory-reservation="" Memory soft limit 62 --memory-swap="" A positive integer equal to memory plus swap. Specify -1 to enable unlimited swap. 63 --memory-swappiness="" Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100. 64 --name="" Assign a name to the container 65 --net="bridge" Connect a container to a network 66 'bridge': create a network stack on the default Docker bridge 67 'none': no networking 68 'container:<name|id>': reuse another container's network stack 69 'host': use the Docker host network stack 70 '<network-name>|<network-id>': connect to a user-defined network 71 --net-alias=[] Add network-scoped alias for the container 72 --oom-kill-disable Whether to disable OOM Killer for the container or not 73 --oom-score-adj=0 Tune the host's OOM preferences for containers (accepts -1000 to 1000) 74 -P, --publish-all Publish all exposed ports to random ports 75 -p, --publish=[] Publish a container's port(s) to the host 76 --pid="" PID namespace to use 77 --pids-limit=-1 Tune container pids limit (set -1 for unlimited), kernel >= 4.3 78 --privileged Give extended privileges to this container 79 --read-only Mount the container's root filesystem as read only 80 --restart="no" Restart policy (no, on-failure[:max-retry], always, unless-stopped) 81 --rm Automatically remove the container when it exits 82 --shm-size=[] Size of `/dev/shm`. The format is `<number><unit>`. `number` must be greater than `0`. Unit is optional and can be `b` (bytes), `k` (kilobytes), `m` (megabytes), or `g` (gigabytes). If you omit the unit, the system uses bytes. If you omit the size entirely, the system uses `64m`. 83 --security-opt=[] Security Options 84 --sig-proxy=true Proxy received signals to the process 85 --stop-signal="SIGTERM" Signal to stop a container 86 -t, --tty Allocate a pseudo-TTY 87 -u, --user="" Username or UID (format: <name|uid>[:<group|gid>]) 88 --ulimit=[] Ulimit options 89 --uts="" UTS namespace to use 90 -v, --volume=[host-src:]container-dest[:<options>] 91 Bind mount a volume. The comma-delimited 92 `options` are [rw|ro], [z|Z], or 93 [[r]shared|[r]slave|[r]private]. The 94 'host-src' is an absolute path or a name 95 value. 96 --volume-driver="" Container's volume driver 97 --volumes-from=[] Mount volumes from the specified container(s) 98 -w, --workdir="" Working directory inside the container 99 100 The `docker run` command first `creates` a writeable container layer over the 101 specified image, and then `starts` it using the specified command. That is, 102 `docker run` is equivalent to the API `/containers/create` then 103 `/containers/(id)/start`. A stopped container can be restarted with all its 104 previous changes intact using `docker start`. See `docker ps -a` to view a list 105 of all containers. 106 107 The `docker run` command can be used in combination with `docker commit` to 108 [*change the command that a container runs*](commit.md). There is additional detailed information about `docker run` in the [Docker run reference](../run.md). 109 110 For information on connecting a container to a network, see the ["*Docker network overview*"](../../userguide/networking/index.md). 111 112 ## Examples 113 114 ### Assign name and allocate pseudo-TTY (--name, -it) 115 116 $ docker run --name test -it debian 117 root@d6c0fe130dba:/# exit 13 118 $ echo $? 119 13 120 $ docker ps -a | grep test 121 d6c0fe130dba debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test 122 123 This example runs a container named `test` using the `debian:latest` 124 image. The `-it` instructs Docker to allocate a pseudo-TTY connected to 125 the container's stdin; creating an interactive `bash` shell in the container. 126 In the example, the `bash` shell is quit by entering 127 `exit 13`. This exit code is passed on to the caller of 128 `docker run`, and is recorded in the `test` container's metadata. 129 130 ### Capture container ID (--cidfile) 131 132 $ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test" 133 134 This will create a container and print `test` to the console. The `cidfile` 135 flag makes Docker attempt to create a new file and write the container ID to it. 136 If the file exists already, Docker will return an error. Docker will close this 137 file when `docker run` exits. 138 139 ### Full container capabilities (--privileged) 140 141 $ docker run -t -i --rm ubuntu bash 142 root@bc338942ef20:/# mount -t tmpfs none /mnt 143 mount: permission denied 144 145 This will *not* work, because by default, most potentially dangerous kernel 146 capabilities are dropped; including `cap_sys_admin` (which is required to mount 147 filesystems). However, the `--privileged` flag will allow it to run: 148 149 $ docker run -t -i --privileged ubuntu bash 150 root@50e3f57e16e6:/# mount -t tmpfs none /mnt 151 root@50e3f57e16e6:/# df -h 152 Filesystem Size Used Avail Use% Mounted on 153 none 1.9G 0 1.9G 0% /mnt 154 155 The `--privileged` flag gives *all* capabilities to the container, and it also 156 lifts all the limitations enforced by the `device` cgroup controller. In other 157 words, the container can then do almost everything that the host can do. This 158 flag exists to allow special use-cases, like running Docker within Docker. 159 160 ### Set working directory (-w) 161 162 $ docker run -w /path/to/dir/ -i -t ubuntu pwd 163 164 The `-w` lets the command being executed inside directory given, here 165 `/path/to/dir/`. If the path does not exists it is created inside the container. 166 167 ### Mount tmpfs (--tmpfs) 168 169 $ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image 170 171 The `--tmpfs` flag mounts an empty tmpfs into the container with the `rw`, 172 `noexec`, `nosuid`, `size=65536k` options. 173 174 ### Mount volume (-v, --read-only) 175 176 $ docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd 177 178 The `-v` flag mounts the current working directory into the container. The `-w` 179 lets the command being executed inside the current working directory, by 180 changing into the directory to the value returned by `pwd`. So this 181 combination executes the command using the container, but inside the 182 current working directory. 183 184 $ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash 185 186 When the host directory of a bind-mounted volume doesn't exist, Docker 187 will automatically create this directory on the host for you. In the 188 example above, Docker will create the `/doesnt/exist` 189 folder before starting your container. 190 191 $ docker run --read-only -v /icanwrite busybox touch /icanwrite here 192 193 Volumes can be used in combination with `--read-only` to control where 194 a container writes files. The `--read-only` flag mounts the container's root 195 filesystem as read only prohibiting writes to locations other than the 196 specified volumes for the container. 197 198 $ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh 199 200 By bind-mounting the docker unix socket and statically linked docker 201 binary (refer to [get the linux binary]( 202 ../../installation/binaries.md#get-the-linux-binary)), 203 you give the container the full access to create and manipulate the host's 204 Docker daemon. 205 206 ### Publish or expose port (-p, --expose) 207 208 $ docker run -p 127.0.0.1:80:8080 ubuntu bash 209 210 This binds port `8080` of the container to port `80` on `127.0.0.1` of the host 211 machine. The [Docker User 212 Guide](../../userguide/networking/default_network/dockerlinks.md) 213 explains in detail how to manipulate ports in Docker. 214 215 $ docker run --expose 80 ubuntu bash 216 217 This exposes port `80` of the container without publishing the port to the host 218 system's interfaces. 219 220 ### Set environment variables (-e, --env, --env-file) 221 222 $ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash 223 224 This sets simple (non-array) environmental variables in the container. For 225 illustration all three 226 flags are shown here. Where `-e`, `--env` take an environment variable and 227 value, or if no `=` is provided, then that variable's current value is passed 228 through (i.e. `$MYVAR1` from the host is set to `$MYVAR1` in the container). 229 When no `=` is provided and that variable is not defined in the client's 230 environment then that variable will be removed from the container's list of 231 environment variables. 232 All three flags, `-e`, `--env` and `--env-file` can be repeated. 233 234 Regardless of the order of these three flags, the `--env-file` are processed 235 first, and then `-e`, `--env` flags. This way, the `-e` or `--env` will 236 override variables as needed. 237 238 $ cat ./env.list 239 TEST_FOO=BAR 240 $ docker run --env TEST_FOO="This is a test" --env-file ./env.list busybox env | grep TEST_FOO 241 TEST_FOO=This is a test 242 243 The `--env-file` flag takes a filename as an argument and expects each line 244 to be in the `VAR=VAL` format, mimicking the argument passed to `--env`. Comment 245 lines need only be prefixed with `#` 246 247 An example of a file passed with `--env-file` 248 249 $ cat ./env.list 250 TEST_FOO=BAR 251 252 # this is a comment 253 TEST_APP_DEST_HOST=10.10.0.127 254 TEST_APP_DEST_PORT=8888 255 _TEST_BAR=FOO 256 TEST_APP_42=magic 257 helloWorld=true 258 123qwe=bar 259 org.spring.config=something 260 261 # pass through this variable from the caller 262 TEST_PASSTHROUGH 263 $ TEST_PASSTHROUGH=howdy docker run --env-file ./env.list busybox env 264 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 265 HOSTNAME=5198e0745561 266 TEST_FOO=BAR 267 TEST_APP_DEST_HOST=10.10.0.127 268 TEST_APP_DEST_PORT=8888 269 _TEST_BAR=FOO 270 TEST_APP_42=magic 271 helloWorld=true 272 TEST_PASSTHROUGH=howdy 273 HOME=/root 274 123qwe=bar 275 org.spring.config=something 276 277 $ docker run --env-file ./env.list busybox env 278 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 279 HOSTNAME=5198e0745561 280 TEST_FOO=BAR 281 TEST_APP_DEST_HOST=10.10.0.127 282 TEST_APP_DEST_PORT=8888 283 _TEST_BAR=FOO 284 TEST_APP_42=magic 285 helloWorld=true 286 TEST_PASSTHROUGH= 287 HOME=/root 288 123qwe=bar 289 org.spring.config=something 290 291 ### Set metadata on container (-l, --label, --label-file) 292 293 A label is a `key=value` pair that applies metadata to a container. To label a container with two labels: 294 295 $ docker run -l my-label --label com.example.foo=bar ubuntu bash 296 297 The `my-label` key doesn't specify a value so the label defaults to an empty 298 string(`""`). To add multiple labels, repeat the label flag (`-l` or `--label`). 299 300 The `key=value` must be unique to avoid overwriting the label value. If you 301 specify labels with identical keys but different values, each subsequent value 302 overwrites the previous. Docker uses the last `key=value` you supply. 303 304 Use the `--label-file` flag to load multiple labels from a file. Delimit each 305 label in the file with an EOL mark. The example below loads labels from a 306 labels file in the current directory: 307 308 $ docker run --label-file ./labels ubuntu bash 309 310 The label-file format is similar to the format for loading environment 311 variables. (Unlike environment variables, labels are not visible to processes 312 running inside a container.) The following example illustrates a label-file 313 format: 314 315 com.example.label1="a label" 316 317 # this is a comment 318 com.example.label2=another\ label 319 com.example.label3 320 321 You can load multiple label-files by supplying multiple `--label-file` flags. 322 323 For additional information on working with labels, see [*Labels - custom 324 metadata in Docker*](../../userguide/labels-custom-metadata.md) in the Docker User 325 Guide. 326 327 ### Connect a container to a network (--net) 328 329 When you start a container use the `--net` flag to connect it to a network. 330 This adds the `busybox` container to the `my-net` network. 331 332 ```bash 333 $ docker run -itd --net=my-net busybox 334 ``` 335 336 You can also choose the IP addresses for the container with `--ip` and `--ip6` 337 flags when you start the container on a user-defined network. 338 339 ```bash 340 $ docker run -itd --net=my-net --ip=10.10.9.75 busybox 341 ``` 342 343 If you want to add a running container to a network use the `docker network connect` subcommand. 344 345 You can connect multiple containers to the same network. Once connected, the 346 containers can communicate easily need only another container's IP address 347 or name. For `overlay` networks or custom plugins that support multi-host 348 connectivity, containers connected to the same multi-host network but launched 349 from different Engines can also communicate in this way. 350 351 **Note**: Service discovery is unavailable on the default bridge network. 352 Containers can communicate via their IP addresses by default. To communicate 353 by name, they must be linked. 354 355 You can disconnect a container from a network using the `docker network 356 disconnect` command. 357 358 ### Mount volumes from container (--volumes-from) 359 360 $ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd 361 362 The `--volumes-from` flag mounts all the defined volumes from the referenced 363 containers. Containers can be specified by repetitions of the `--volumes-from` 364 argument. The container ID may be optionally suffixed with `:ro` or `:rw` to 365 mount the volumes in read-only or read-write mode, respectively. By default, 366 the volumes are mounted in the same mode (read write or read only) as 367 the reference container. 368 369 Labeling systems like SELinux require that proper labels are placed on volume 370 content mounted into a container. Without a label, the security system might 371 prevent the processes running inside the container from using the content. By 372 default, Docker does not change the labels set by the OS. 373 374 To change the label in the container context, you can add either of two suffixes 375 `:z` or `:Z` to the volume mount. These suffixes tell Docker to relabel file 376 objects on the shared volumes. The `z` option tells Docker that two containers 377 share the volume content. As a result, Docker labels the content with a shared 378 content label. Shared volume labels allow all containers to read/write content. 379 The `Z` option tells Docker to label the content with a private unshared label. 380 Only the current container can use a private volume. 381 382 ### Attach to STDIN/STDOUT/STDERR (-a) 383 384 The `-a` flag tells `docker run` to bind to the container's `STDIN`, `STDOUT` 385 or `STDERR`. This makes it possible to manipulate the output and input as 386 needed. 387 388 $ echo "test" | docker run -i -a stdin ubuntu cat - 389 390 This pipes data into a container and prints the container's ID by attaching 391 only to the container's `STDIN`. 392 393 $ docker run -a stderr ubuntu echo test 394 395 This isn't going to print anything unless there's an error because we've 396 only attached to the `STDERR` of the container. The container's logs 397 still store what's been written to `STDERR` and `STDOUT`. 398 399 $ cat somefile | docker run -i -a stdin mybuilder dobuild 400 401 This is how piping a file into a container could be done for a build. 402 The container's ID will be printed after the build is done and the build 403 logs could be retrieved using `docker logs`. This is 404 useful if you need to pipe a file or something else into a container and 405 retrieve the container's ID once the container has finished running. 406 407 ### Add host device to container (--device) 408 409 $ docker run --device=/dev/sdc:/dev/xvdc --device=/dev/sdd --device=/dev/zero:/dev/nulo -i -t ubuntu ls -l /dev/{xvdc,sdd,nulo} 410 brw-rw---- 1 root disk 8, 2 Feb 9 16:05 /dev/xvdc 411 brw-rw---- 1 root disk 8, 3 Feb 9 16:05 /dev/sdd 412 crw-rw-rw- 1 root root 1, 5 Feb 9 16:05 /dev/nulo 413 414 It is often necessary to directly expose devices to a container. The `--device` 415 option enables that. For example, a specific block storage device or loop 416 device or audio device can be added to an otherwise unprivileged container 417 (without the `--privileged` flag) and have the application directly access it. 418 419 By default, the container will be able to `read`, `write` and `mknod` these devices. 420 This can be overridden using a third `:rwm` set of options to each `--device` 421 flag: 422 423 424 $ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk /dev/xvdc 425 426 Command (m for help): q 427 $ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk /dev/xvdc 428 You will not be able to write the partition table. 429 430 Command (m for help): q 431 432 $ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk /dev/xvdc 433 434 Command (m for help): q 435 436 $ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk /dev/xvdc 437 fdisk: unable to open /dev/xvdc: Operation not permitted 438 439 > **Note:** 440 > `--device` cannot be safely used with ephemeral devices. Block devices 441 > that may be removed should not be added to untrusted containers with 442 > `--device`. 443 444 ### Restart policies (--restart) 445 446 Use Docker's `--restart` to specify a container's *restart policy*. A restart 447 policy controls whether the Docker daemon restarts a container after exit. 448 Docker supports the following restart policies: 449 450 <table> 451 <thead> 452 <tr> 453 <th>Policy</th> 454 <th>Result</th> 455 </tr> 456 </thead> 457 <tbody> 458 <tr> 459 <td><strong>no</strong></td> 460 <td> 461 Do not automatically restart the container when it exits. This is the 462 default. 463 </td> 464 </tr> 465 <tr> 466 <td> 467 <span style="white-space: nowrap"> 468 <strong>on-failure</strong>[:max-retries] 469 </span> 470 </td> 471 <td> 472 Restart only if the container exits with a non-zero exit status. 473 Optionally, limit the number of restart retries the Docker 474 daemon attempts. 475 </td> 476 </tr> 477 <tr> 478 <td><strong>always</strong></td> 479 <td> 480 Always restart the container regardless of the exit status. 481 When you specify always, the Docker daemon will try to restart 482 the container indefinitely. The container will also always start 483 on daemon startup, regardless of the current state of the container. 484 </td> 485 </tr> 486 <tr> 487 <td><strong>unless-stopped</strong></td> 488 <td> 489 Always restart the container regardless of the exit status, but 490 do not start it on daemon startup if the container has been put 491 to a stopped state before. 492 </td> 493 </tr> 494 </tbody> 495 </table> 496 497 $ docker run --restart=always redis 498 499 This will run the `redis` container with a restart policy of **always** 500 so that if the container exits, Docker will restart it. 501 502 More detailed information on restart policies can be found in the 503 [Restart Policies (--restart)](../run.md#restart-policies-restart) 504 section of the Docker run reference page. 505 506 ### Add entries to container hosts file (--add-host) 507 508 You can add other hosts into a container's `/etc/hosts` file by using one or 509 more `--add-host` flags. This example adds a static address for a host named 510 `docker`: 511 512 $ docker run --add-host=docker:10.180.0.1 --rm -it debian 513 $$ ping docker 514 PING docker (10.180.0.1): 48 data bytes 515 56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms 516 56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms 517 ^C--- docker ping statistics --- 518 2 packets transmitted, 2 packets received, 0% packet loss 519 round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms 520 521 Sometimes you need to connect to the Docker host from within your 522 container. To enable this, pass the Docker host's IP address to 523 the container using the `--add-host` flag. To find the host's address, 524 use the `ip addr show` command. 525 526 The flags you pass to `ip addr show` depend on whether you are 527 using IPv4 or IPv6 networking in your containers. Use the following 528 flags for IPv4 address retrieval for a network device named `eth0`: 529 530 $ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1` 531 $ docker run --add-host=docker:${HOSTIP} --rm -it debian 532 533 For IPv6 use the `-6` flag instead of the `-4` flag. For other network 534 devices, replace `eth0` with the correct device name (for example `docker0` 535 for the bridge device). 536 537 ### Set ulimits in container (--ulimit) 538 539 Since setting `ulimit` settings in a container requires extra privileges not 540 available in the default container, you can set these using the `--ulimit` flag. 541 `--ulimit` is specified with a soft and hard limit as such: 542 `<type>=<soft limit>[:<hard limit>]`, for example: 543 544 $ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n" 545 1024 546 547 > **Note:** 548 > If you do not provide a `hard limit`, the `soft limit` will be used 549 > for both values. If no `ulimits` are set, they will be inherited from 550 > the default `ulimits` set on the daemon. `as` option is disabled now. 551 > In other words, the following script is not supported: 552 > `$ docker run -it --ulimit as=1024 fedora /bin/bash` 553 554 The values are sent to the appropriate `syscall` as they are set. 555 Docker doesn't perform any byte conversion. Take this into account when setting the values. 556 557 #### For `nproc` usage 558 559 Be careful setting `nproc` with the `ulimit` flag as `nproc` is designed by Linux to set the 560 maximum number of processes available to a user, not to a container. For example, start four 561 containers with `daemon` user: 562 563 docker run -d -u daemon --ulimit nproc=3 busybox top 564 docker run -d -u daemon --ulimit nproc=3 busybox top 565 docker run -d -u daemon --ulimit nproc=3 busybox top 566 docker run -d -u daemon --ulimit nproc=3 busybox top 567 568 The 4th container fails and reports "[8] System error: resource temporarily unavailable" error. 569 This fails because the caller set `nproc=3` resulting in the first three containers using up 570 the three processes quota set for the `daemon` user. 571 572 ### Stop container with signal (--stop-signal) 573 574 The `--stop-signal` flag sets the system call signal that will be sent to the container to exit. 575 This signal can be a valid unsigned number that matches a position in the kernel's syscall table, for instance 9, 576 or a signal name in the format SIGNAME, for instance SIGKILL. 577 578 ### Specify isolation technology for container (--isolation) 579 580 This option is useful in situations where you are running Docker containers on 581 Microsoft Windows. The `--isolation <value>` option sets a container's isolation 582 technology. On Linux, the only supported is the `default` option which uses 583 Linux namespaces. These two commands are equivalent on Linux: 584 585 ``` 586 $ docker run -d busybox top 587 $ docker run -d --isolation default busybox top 588 ``` 589 590 On Microsoft Windows, can take any of these values: 591 592 593 | Value | Description | 594 |-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| 595 | `default` | Use the value specified by the Docker daemon's `--exec-opt` . If the `daemon` does not specify an isolation technology, Microsoft Windows uses `process` as its default value. | 596 | `process` | Namespace isolation only. | 597 | `hyperv` | Hyper-V hypervisor partition-based isolation. | 598 599 In practice, when running on Microsoft Windows without a `daemon` option set, these two commands are equivalent: 600 601 ``` 602 $ docker run -d --isolation default busybox top 603 $ docker run -d --isolation process busybox top 604 ``` 605 606 If you have set the `--exec-opt isolation=hyperv` option on the Docker `daemon`, any of these commands also result in `hyperv` isolation: 607 608 ``` 609 $ docker run -d --isolation default busybox top 610 $ docker run -d --isolation hyperv busybox top 611 ```