命令:
docker container run
描述:
从一个镜像创建并运行一个新容器
用法:
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
别名:
docker run(docker的一些命令可以简写,docker run就等同于docker container run)
备注:
1.docker run会先查看要创建的容器镜像是否存在在本地的镜像仓库中(使用命令docker images可以查看本地镜像库),如果没有,就会从远程公共镜像仓库拉取到本地,再根据镜像创建出一个新容器并运行。
2.如果本地存在要创建的容器(使用命令docker ps -a可以查看本地所有容器),不需要使用这个命令。可以使用docker start [容器名]来启动这个容器。
常用操作
一般我们使用docker run的常用选项是-d,–name,-p,-v。
-d(–detach):在后台运行容器并打印容器ID
–name:为容器分配一个名称
-p(–publish):将容器的端口发布到宿主机
-v(–volume):绑定挂载一个卷
示例:使用镜像wordpress:latest(这里可以直接用wordpress,所有的镜像tag默认都是:latest),以后台方式(-d)创建并运行一个容器(docker run),将容器命名为mywp(–name mywp),将容器端口80映射到主机端口8080(-p 8080:80),将wordpress的数据挂载到/var/www/html的目录下(-v /var/www/html)。以上四个选项都是可选的,不指定,会进行默认处理。
docker run -d -p 8080:80 -v /var/www/html --name mywp wordpress:latest
打开浏览器,输入localhost:8080,就能看到wordpress的初始化界面了。因为将容器端口号由80映射为8080,所有访问wordpress必须用8080的端口号,使用80端口号是不起作用的。
所有选项描述表
选项 | 描述 | 备注 |
---|---|---|
–add-host | 添加一个自定义的主机到IP映射(主机:IP) | |
–annotation | 向容器添加一个注解(传递给OCI运行时) | API 1.43+ |
-a, –attach | 附加到标准输入、标准输出或标准错误 | |
–blkio-weight | 块IO(相对权重),在10到1000之间,或者0以禁用(默认为0) | |
–blkio-weight-device | 块IO权重(相对设备权重) | |
–cap-add | 添加Linux功能 | |
–cap-drop | 删除Linux功能 | |
–cgroup-parent | 容器的可选父控制组 | |
–cgroupns | Cgroup命名空间使用(host|private) ‘host’:在Docker宿主机的cgroup命名空间中运行容器 ‘private’:在容器自己的私有cgroup命名空间中运行容器 使用守护进程上default-cgroupns-mode选项配置的cgroup命名空间(默认) | API 1.41+ |
–cidfile | 将容器ID写入文件 | |
–cpu-count | CPU计数(仅限Windows) | |
–cpu-percent | CPU百分比(仅限Windows) | |
–cpu-period | 限制CPU CFS(完全公平调度器)周期 | |
–cpu-quota | 限制CPU CFS(完全公平调度器)配额 | |
–cpu-rt-period | Limit CPU real-time period in microseconds | API 1.25+ |
–cpu-rt-runtime | 限制CPU实时运行时间,以微秒计 | API 1.25+ |
-c, –cpu-shares | CPU份额(相对权重) | |
–cpus | CPU数量 | API 1.25+ |
–cpuset-cpus | 允许执行的CPU(0-3, 0,1) | |
–cpuset-mems | 允许执行的内存(0-3, 0,1) | |
-d, –detach | 在后台运行容器并打印容器ID | |
–detach-keys | 覆盖用于分离容器的键序列 | |
–device | 向容器添加一个主机设备 | |
–device-cgroup-rule | 向cgroup允许的设备列表中添加一条规则 | |
–device-read-bps | 限制从设备的读取速率(每秒字节数) | |
–device-read-iops | 限制从设备的读取速率(每秒IO数) | |
–device-write-bps | 限制写入速率(每秒字节数)到设备 | |
–device-write-iops | 限制写入速率(每秒IO数)到设备 | |
–disable-content-trust | 跳过镜像验证 | 默认true |
–dns | 设置自定义DNS服务器 | |
–dns-option | 设置DNS选项 | |
–dns-search | 设置自定义DNS搜索域 | |
–domainname | 容器NIS域名 | |
–entrypoint | 覆盖镜像的默认入口点 | |
-e, –env | 设置环境变量 | |
–env-file | 读取一个环境变量文件 | |
–expose | 暴露一个端口或一系列端口 | |
–gpus | 要添加到容器的GPU设备(’all’表示传递所有GPU) | API 1.40+ |
–group-add | 添加要加入的附加组 | |
–health-cmd | 运行以检查健康状况的命令 | |
–health-interval | 运行检查之间的时间(毫秒|秒|分钟|小时)(默认为0秒) | |
–health-retries | 报告不健康所需连续失败次数 | API 1.44+ |
–health-start-interval | 启动期间运行检查的时间(毫秒|秒|分钟|小时)(默认为0秒) | API 1.29+ |
–health-start-period | 容器在开始健康重试倒计时之前的初始化启动期(毫秒|秒|分钟|小时)(默认为0秒) | |
–health-timeout | 允许一次检查运行的最长时间(毫秒|秒|分钟|小时)(默认为0秒) | |
–help | 打印帮助信息 | |
-h, –hostname | 容器主机名 | |
–init | 在容器内运行一个init,该init转发信号并收割进程 | API 1.25+ |
-i, –interactive | 即使未附加,也保持标准输入(STDIN)打开 | |
–io-maxbandwidth | 系统驱动器的最大IO带宽限制(仅限Windows) | |
–io-maxiops | 系统驱动器的最大IOps限制(仅限Windows) | |
–ip | IPv4地址(例如,172.30.100.104) | |
–ip6 | IPv6地址(例如,2001:db8::33) | |
–ipc | 要使用的IPC模式 | |
–isolation | 容器隔离技术 | |
–kernel-memory | 内核内存限制 | |
-l, –label | 设置容器的元数据 | |
–label-file | 读取一个以行分隔的标签文件 | |
–link | 将链接添加到另一个容器 | |
–link-local-ip | 容器 IPv4/IPv6 链路本地地址 | |
–log-driver | 容器的日志驱动程序 | |
–log-opt | 日志驱动程序选项 | |
–mac-address | 容器 MAC 地址(例如,92:d0:c6:0a:29:33) | |
-m, –memory | 内存限制 | |
–memory-reservation | 内存软限制 | |
–memory-swap | 交换限制等于内存加交换:‘-1’ 表示启用无限制交换 | |
–memory-swappiness | 调整容器内存交换偏好(0 到 100) | 默认-1 |
–mount | 将文件系统挂载附加到容器 | |
–name | 为容器分配一个名称 | |
–network | 将容器连接到网络 | |
–network-alias | 为容器添加网络范围内的别名 | |
–no-healthcheck | 禁用任何容器指定的 HEALTHCHECK | |
–oom-kill-disable | 禁用内存溢出(OOM)杀手 | |
–oom-score-adj | 调整宿主机的内存溢出(OOM)偏好(-1000 到 1000) | |
–pid | 要使用的 PID 命名空间 | |
–pids-limit | 调整容器进程 ID(PID)限制(设置为 -1 表示无限制) | |
–platform | 如果服务器支持多平台,则设置平台 | API 1.32+ |
–privileged | 为这个容器提供扩展权限 | |
-p, –publish | 将容器的端口发布到宿主机 | |
-P, –publish-all | 将所有暴露的端口发布到随机端口 | |
–pull | 运行前拉取镜像(always, missing, never) | 默认missing |
-q, –quiet | 抑制拉取输出 | |
–read-only | 将容器的根文件系统挂载为只读 | |
–restart | 容器退出时应用的重启策略 | 默认为no |
–rm | 容器退出时自动移除 | |
–runtime | 为此容器使用的运行时 | |
–security-opt | 安全选项 | |
–shm-size | /dev/shm 的大小 | |
–sig-proxy | 将代理接收的信号传递给进程 | 默认为true |
–stop-signal | 停止容器的信号 | |
–stop-timeout | 停止容器的超时时间(以秒为单位) | API 1.25+ |
–storage-opt | 容器的存储驱动程序选项 | |
–sysctl | Sysctl 选项 | |
–tmpfs | 挂载一个 tmpfs 目录 | |
-t, –tty | 分配一个伪 TTY | |
–ulimit | Ulimit 选项 | |
-u, –user | 用户名或用户 ID(格式:<名称|uid>[:<组|gid>) | |
–userns | 要使用的用户命名空间 | |
–uts | 要使用的UTS命名空间 | |
-v, –volume | 绑定挂载一个卷 | |
–volume-driver | 容器的可选卷驱动程序 | |
–volumes-from | 从指定的容器挂载卷 | |
-w, –workdir | 容器内的工作目录 |
1 thought on “【Docker学习】docker run”