docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
。使用Docker run运行容器

Docker是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,下面,我们将详细介绍如何使用Docker run命令来运行一个容器。
1. Docker简介
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,Docker可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
2. Docker run命令
Docker run命令是用于从镜像创建一个新的容器并启动它,基本的语法如下:

docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
OPTIONS
:可选参数,d
后台运行、p
端口映射等。
IMAGE[:TAG|@DIGEST]
:需要运行的镜像名称和标签,如果不指定标签,默认为latest
,如果镜像不存在,Docker会自动拉取镜像。
COMMAND
:在容器启动后需要执行的命令,如果不指定,Docker会尝试运行镜像的ENTRYPOINT
指令,如果没有设置ENTRYPOINT
,则运行CMD
指令。
ARG...
:传递给命令的参数。
3. 常用Docker run选项

以下是一些常用的Docker run选项:
选项 | 描述 |
d | 以后台模式运行容器 |
p | 端口映射,格式为:主机(宿主)端口:容器端口 |
v | 挂载卷,格式为:主机(宿主)目录:容器目录 |
name | 为容器指定一个名称 |
restart | 设置容器重启策略,always、onfailure等 |
network | 设置容器连接的网络 |
e | 设置环境变量 |
env | 设置环境变量,格式为:KEY=VALUE |
volumesfrom | 从其他容器挂载卷 |
capadd | 添加容器的权限 |
capdrop | 删除容器的权限 |
device | 添加设备到容器中 |
tmpfs | 添加临时文件系统到容器中 |
privileged | 给容器添加特权 |
oomkilldisable | 禁用OOM Killer |
cpus | 设置容器可以使用的CPU数量 |
memory | 设置容器可以使用的内存大小 |
ulimit | 设置容器的资源限制 |
link | 链接到另一个容器 |
expose | 声明运行时容器提供服务端口,但不实际映射它,格式为:主机(宿主)端口(TCP/UDP):容器端口(TCP/UDP) |
publish | 绑定到指定的网络接口并公开端口,格式为:主机(宿主)IP:主机(宿主)端口:容器端口(TCP/UDP) |
detach | 后台运行并返回容器ID,而不是终端输出 |
rm | 在退出时自动删除容器,包括未使用的卷 |
interactive | 允许TTY分配和STDIN交互 |
tty | 分配一个伪终端 |
healthcmd | 指定检查容器健康状况的命令 |
healthinterval | 指定检查容器健康状况的时间间隔(秒)和连续失败次数(默认3次)后停止容器的健康检查 |
healthretries | 指定连续失败次数(默认3次)后停止容器的健康检查并返回错误状态码(默认128) |
nohealthcheck | 如果容器有健康检查指令,则禁用它 |
restartdelay | 指定应用重启前的等待时间(秒)和连续失败次数(默认3次)后停止应用重启尝试 |
restartmaxattempts | 指定应用重启的最大尝试次数(默认12次)和连续失败次数(默认3次)后停止应用重启尝试并返回错误状态码(默认128) |
restartwindow | 指定应用重启之间的最小时间间隔(秒)和最大时间间隔(秒)和连续失败次数(默认3次)后停止应用重启尝试并返回错误状态码(默认128) |
logdriver | 设置日志驱动类型,jsonfile、syslog、journald等 |
logopt | 设置日志驱动的选项,jsonfile的maxsize、maxfile、jsonfile等 |
securityopt | 设置SELinux安全上下文选项,user、role、type、level等 |
label | 设置元数据标签,key=value、key=”value with spaces”等 |
workdir | 设置工作目录 |
| entrypoint | 覆盖镜像的入口点命令或可执行文件路径,格式为:[executable,[param1,[param2,…]]]或者["executable","param1","param2",…]或者command [param1,[param2,…]]或者command "param1" "param2" …或者[[executable,[param1,[param2,…]],[entrypoint,[param1,[param2,…]]]]]或者[[executable,"param1","param2",…],["entrypoint","param1","param2",…]]或者[[executable,[param1,[param2,…]],"param1","param2",…],["entrypoint","param1","param2",…]]或者[[executable,"param1","param2",…],["entrypoint","param1","param2",…],"param1","param2",…]或者[[executable,[param1,[param2,…]],"param1","param2",…],["entrypoint","param1","param2",…],"param1","param2",…]或者[[executable,"param1","param2",…],["entrypoint","param1","param2",…],"param1","param2",…],"param1","param2",…]或者[[executable,[param1,[param2,…]],"param1","param2",…],["entrypoint","param1","param2",…],"param1","param2",…],"param1","param2",…],"param1","param2",…]或者[[executable,"param1","param2",…],["entrypoint","param1","param2",…],"param1","param2",…],"param1","param2",…],"param1","pa
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复