Docker run 命令详解

学习Docker一段时间啦,上周在和同事讨论时发现自己对run命令还存在不了解的地方,因此特意整理一遍,目的:加强记忆。 内容来源于官网和网上其他牛人整理。

语法

docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

使用 docker run --help 查看的详细如下:

# docker run --help
Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
Options:
      --add-host value              Add a custom host-to-IP mapping (host:ip) (default [])
     # 给即将启动的容器在/etc/hosts中添加host:ip,在容器中可用host访问
     例子:docker run -ti --add-host winxin:192.168.220.125 80d2 /bin/bash
  -a, --attach value                Attach to STDIN, STDOUT or STDERR (default [])
     # stdout(Standardoutput)标准输出、stdin(Standardinput)标准输入、stderr(Standarderror)标准错误
      --blkio-weight value          Block IO (relative weight), between 10 and 1000
    #容器使用的IO控制,存在疑问是控制读和写?[xiaosun26](http://my.csdn.net/xiaosun26)做了个测试表明只对读有控制,对写是没有影响的。---待测试。
      --blkio-weight-device value   Block IO weight (relative device weight) (default [])
      --cap-add value               Add Linux capabilities (default [])
     #如 --cap-add=NET_ADMIN 可修改网络接口数据,或者ALL则所有权限。
      --cap-drop value              Drop Linux capabilities (default [])
     #删除掉某些权限 
      --cgroup-parent string        Optional parent cgroup for the container
      --cidfile string              Write the container ID to the file
      --cpu-percent int             CPU percent (Windows only)
      --cpu-period int              Limit CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int               Limit CPU CFS (Completely Fair Scheduler) quota
  -c, --cpu-shares int              CPU shares (relative weight)
      #设置成0则100%使用CPU
      --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)
  -d, --detach                      Run container in background and print container ID
      #常用,容器后台运行,并打印容器id
      --detach-keys string          Override the key sequence for detaching a container
      --device value                Add a host device to the container (default [])
      #--device=/dev/sda:/dev/xvdc 将设备映射到容器中
      --device-read-bps value       Limit read rate (bytes per second) from a device (default [])
      --device-read-iops value      Limit read rate (IO per second) from a device (default [])
      --device-write-bps value      Limit write rate (bytes per second) to a device (default [])
      --device-write-iops value     Limit write rate (IO per second) to a device (default [])
      --disable-content-trust       Skip image verification (default true)
      --dns value                   Set custom DNS servers (default [])
      --dns-opt value               Set DNS options (default [])
      --dns-search value            Set custom DNS search domains (default [])
      --entrypoint string           Overwrite the default ENTRYPOINT of the image
     #覆盖image中的entrypoint
  -e, --env value                   Set environment variables (default [])
     #设置换变量 -e "MYSQL_PORT=3306"
      --env-file value              Read in a file of environment variables (default [])
      --expose value                Expose a port or a range of ports (default [])
      --group-add value             Add additional groups to join (default [])
      --health-cmd string           Command to run to check health
      --health-interval duration    Time between running the check
      --health-retries int          Consecutive failures needed to report unhealthy
      --health-timeout duration     Maximum time to allow one check to run
      --help                        Print usage
  -h, --hostname string             Container host name
      #常用,如不设置成每次Container的hostname都是不一样的。
  -i, --interactive                 Keep STDIN open even if not attached
     #常用,交互模式
      --io-maxbandwidth string      Maximum IO bandwidth limit for the system drive (Windows only)
      --io-maxiops uint             Maximum IOps limit for the system drive (Windows only)
      --ip string                   Container IPv4 address (e.g. 172.30.100.104)
      #常用,如不设置每次Container的IP都是变动
      --ip6 string                  Container IPv6 address (e.g. 2001:db8::33)
      --ipc string                  IPC namespace to use
      --isolation string            Container isolation technology
      --kernel-memory string        Kernel memory limit
  -l, --label value                 Set meta data on a container (default [])
      --label-file value            Read in a line delimited file of labels (default [])
      --link value                  Add link to another container (default [])
      #常用,link另一个容器关联到当前容器中
      --link-local-ip value         Container IPv4/IPv6 link-local addresses (default [])
      --log-driver string           Logging driver for the container
      --log-opt value               Log driver options (default [])
      --mac-address string          Container MAC address (e.g. 92:d0:c6:0a:29:33)
  -m, --memory string               Memory limit
       #设置内存
      --memory-reservation string   Memory soft limit
      --memory-swap string          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int       Tune container memory swappiness (0 to 100) (default -1)
      --name string                 Assign a name to the container
       #设置容器的名称
      --network string              Connect a container to a network (default "default")
      --network-alias value         Add network-scoped alias for the container (default [])
      --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)
      --privileged                  Give extended privileges to this container
      #一个十分强悍的命令,不设置时,容器里无法在启动容器,没有使用宿主机设备的权限
  -p, --publish value               Publish a container's port(s) to the host (default [])
  -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
       #当容器存在时自动删除,rm和-d命令是冲突的
      --runtime string              Runtime to use for this container
      --security-opt value          Security Options (default [])
      --shm-size string             Size of /dev/shm, default value is 64MB
      --sig-proxy                   Proxy received signals to the process (default true)
      --stop-signal string          Signal to stop a container, SIGTERM by default (default "SIGTERM")
      --storage-opt value           Storage driver options for the container (default [])
      --sysctl value                Sysctl options (default map[])
      --tmpfs value                 Mount a tmpfs directory (default [])
  -t, --tty                         Allocate a pseudo-TTY
      --ulimit value                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 value                Bind mount a volume (default [])
    #常用,挂载volume到容器中
      --volume-driver string        Optional volume driver for the container
      --volumes-from value          Mount volumes from the specified container(s) (default [])
  -w, --workdir string              Working directory inside the container
    #设置容器里work目录
    原文作者:灼灼2015
    原文地址: https://www.jianshu.com/p/983229b3785d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞