run.rst 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. :title: Run Command
  2. :description: Run a command in a new container
  3. :keywords: run, container, docker, documentation
  4. ===========================================
  5. ``run`` -- Run a command in a new container
  6. ===========================================
  7. ::
  8. Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
  9. Run a command in a new container
  10. -a=map[]: Attach to stdin, stdout or stderr.
  11. -c=0: CPU shares (relative weight)
  12. -cidfile="": Write the container ID to the file
  13. -d=false: Detached mode: Run container in the background, print new container id
  14. -e=[]: Set environment variables
  15. -h="": Container host name
  16. -i=false: Keep stdin open even if not attached
  17. -privileged=false: Give extended privileges to this container
  18. -m=0: Memory limit (in bytes)
  19. -n=true: Enable networking for this container
  20. -p=[]: Map a network port to the container
  21. -t=false: Allocate a pseudo-tty
  22. -u="": Username or UID
  23. -dns=[]: Set custom dns servers for the container
  24. -v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro]. If "host-dir" is missing, then docker creates a new volume.
  25. -volumes-from="": Mount all volumes from the given container.
  26. -entrypoint="": Overwrite the default entrypoint set by the image.
  27. -w="": Working directory inside the container
  28. Examples
  29. --------
  30. .. code-block:: bash
  31. sudo docker run -cidfile /tmp/docker_test.cid ubuntu echo "test"
  32. This will create a container and print "test" to the console. The
  33. ``cidfile`` flag makes docker attempt to create a new file and write the
  34. container ID to it. If the file exists already, docker will return an
  35. error. Docker will close this file when docker run exits.
  36. .. code-block:: bash
  37. docker run mount -t tmpfs none /var/spool/squid
  38. This will *not* work, because by default, most potentially dangerous
  39. kernel capabilities are dropped; including ``cap_sys_admin`` (which is
  40. required to mount filesystems). However, the ``-privileged`` flag will
  41. allow it to run:
  42. .. code-block:: bash
  43. docker run -privileged mount -t tmpfs none /var/spool/squid
  44. The ``-privileged`` flag gives *all* capabilities to the container,
  45. and it also lifts all the limitations enforced by the ``device``
  46. cgroup controller. In other words, the container can then do almost
  47. everything that the host can do. This flag exists to allow special
  48. use-cases, like running Docker within Docker.
  49. .. code-block:: bash
  50. docker run -w /path/to/dir/ -i -t ubuntu pwd
  51. The ``-w`` lets the command beeing executed inside directory given,
  52. here /path/to/dir/. If the path does not exists it is created inside the
  53. container.
  54. .. code-block:: bash
  55. docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd
  56. The ``-v`` flag mounts the current working directory into the container.
  57. The ``-w`` lets the command beeing executed inside the current
  58. working directory, by changeing into the directory to the value
  59. returned by ``pwd``. So this combination executes the command
  60. using the container, but inside the current working directory.