run.rst 3.1 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. -lxc-conf=[]: Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
  29. Examples
  30. --------
  31. .. code-block:: bash
  32. sudo docker run -cidfile /tmp/docker_test.cid ubuntu echo "test"
  33. This will create a container and print "test" to the console. The
  34. ``cidfile`` flag makes docker attempt to create a new file and write the
  35. container ID to it. If the file exists already, docker will return an
  36. error. Docker will close this file when docker run exits.
  37. .. code-block:: bash
  38. docker run mount -t tmpfs none /var/spool/squid
  39. This will *not* work, because by default, most potentially dangerous
  40. kernel capabilities are dropped; including ``cap_sys_admin`` (which is
  41. required to mount filesystems). However, the ``-privileged`` flag will
  42. allow it to run:
  43. .. code-block:: bash
  44. docker run -privileged mount -t tmpfs none /var/spool/squid
  45. The ``-privileged`` flag gives *all* capabilities to the container,
  46. and it also lifts all the limitations enforced by the ``device``
  47. cgroup controller. In other words, the container can then do almost
  48. everything that the host can do. This flag exists to allow special
  49. use-cases, like running Docker within Docker.
  50. .. code-block:: bash
  51. docker run -w /path/to/dir/ -i -t ubuntu pwd
  52. The ``-w`` lets the command being executed inside directory given,
  53. here /path/to/dir/. If the path does not exists it is created inside the
  54. container.
  55. .. code-block:: bash
  56. docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd
  57. The ``-v`` flag mounts the current working directory into the container.
  58. The ``-w`` lets the command being executed inside the current
  59. working directory, by changing into the directory to the value
  60. returned by ``pwd``. So this combination executes the command
  61. using the container, but inside the current working directory.