随机
Enter 搜索 ↑↓ 切换 Esc 清空

docker-run

命令

创建并启动一个新的容器

docker-run

创建并启动一个新的容器

补充说明

docker run 命令是 Docker 中最常用的命令之一,它会基于指定的镜像创建一个新的容器并启动运行。该命令实际上是 docker createdocker start 的组合。

语法

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

选项

-d, --detach                    # 后台运行容器并返回容器ID
-i, --interactive               # 保持标准输入打开
-t, --tty                       # 分配一个伪终端
-p, --publish list              # 发布容器端口到主机  -p 宿主机端口:容器端口
-P, --publish-all               # 发布所有暴露的端口到随机端口
-v, --volume list               # 挂载卷  -v 宿主机路径:容器路径
--name string                   # 为容器指定名称
--network network               # 将容器连接到网络
--restart policy                # 容器退出时的重启策略 (no|on-failure|always|unless-stopped)
-e, --env list                  # 设置环境变量
-w, --workdir string            # 指定容器内的工作目录
-u, --user string               # 指定用户 (格式: <name|uid>[:<group|gid>])
--rm                            # 容器退出时自动删除
--hostname string               # 设置容器主机名
--add-host list                 # 添加自定义主机到IP映射 (host:ip)
--cpus decimal                  # CPU数量限制
-m, --memory bytes              # 内存限制
--gpus device-request           # GPU设备分配
--privileged                    # 赋予容器扩展权限
--entrypoint string             # 覆盖镜像的默认ENTRYPOINT
--init                          # 在容器内启动一个init进程
--log-driver string             # 日志驱动
--ip string                     # 指定容器IPv4地址
-h, --help                      # 显示帮助信息

常用实例

# 启动一个 nginx 容器,映射 80 端口
docker run -d --name my-nginx -p 80:80 nginx:latest

# 交互式启动 Ubuntu 容器
docker run -it ubuntu:22.04 /bin/bash

# 挂载宿主机目录
docker run -d -v /host/data:/container/data nginx:latest

# 设置环境变量和重启策略
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always -p 3306:3306 mysql:8.0

# 限制资源使用
docker run -d --cpus=2 -m 1g nginx:latest

# 容器退出后自动删除
docker run --rm alpine:latest echo "hello world"

# 使用自定义网络
docker run -d --network my-net --name my-app my-image

# 指定容器内用户
docker run -u 1000:1000 ubuntu:22.04 whoami

# 分配 GPU
docker run --gpus all nvidia/cuda:11.8-base nvidia-smi

重启策略说明

策略 说明
no 默认值,容器退出不重启
on-failure[:max-retries] 容器非正常退出时重启,可设置最大重试次数
always 容器退出时总是重启
unless-stopped 类似 always,但在 Docker 守护进程启动时,不会启动已手动停止的容器