学习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目录