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