docker run 命令

用于从镜像创建并启动一个新的容器。

基本语法:

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

常用选项分类说明

  1. 容器配置
  • --name
    为容器指定名称(默认随机生成)。
    示例: docker run --name my_container nginx
  • --rm
    容器退出后自动删除容器(适用于临时测试)。
    示例:docker run --rm alpine echo "Hello"
  • -it
    以交互模式运行容器(通常与 /bin/bash 或 sh 结合使用)。
    示例:docker run -it ubuntu /bin/bash
  1. 资源限制
  • -m 或 --memory
    限制容器内存使用(支持 b/k/m/g)。
    示例:docker run -m 512m nginx
  • –cpus
    限制容器使用的 CPU 核心数。
    示例:docker run --cpus=1.5 nginx
  • –cpu-shares
    设置 CPU 权重(默认 1024,相对比例)。
    示例:docker run --cpu-shares=512 nginx
  1. 网络设置
  • -p 或 --publish
    映射容器端口到主机(格式:主机端口:容器端口)。
    示例:docker run -p 8080:80 nginx # 主机 8080 → 容器 80
  • -P 或 --publish-all
    自动映射容器所有暴露的端口到主机随机端口。
    示例:docker run -P nginx
  • –network
    指定容器使用的网络(如 host、bridge、自定义网络)。
    示例:docker run --network=host nginx
  1. 存储卷(Volume)
  • -v 或 --volume
    挂载主机目录或命名卷到容器(格式:主机路径:容器路径[:权限])。
    示例:docker run -v /data:/app/data nginx # 挂载目录 docker run -v my_volume:/app/data nginx # 使用命名卷
  • –mount
    更详细的挂载配置(支持类型 bind、volume、tmpfs)。
    示例:docker run --mount type=bind,source=/data,target=/app/data nginx
  1. 环境变量
  • -e 或 --env
    设置容器内的环境变量。
    示例:docker run -e MY_ENV=value nginx
  • –env-file
    从文件读取环境变量。
    示例:docker run --env-file=env.list nginx
  1. 元数据与标签
  • -l 或 --label
    为容器添加元数据标签。
    示例:docker run -l "env=prod" nginx
  1. 日志与输入输出
  • -d 或 --detach
    后台运行容器(守护进程模式)。
    示例:docker run -d nginx
  • –log-driver
    指定日志驱动(如 json-file、syslog、none)。
    示例:docker run --log-driver=syslog nginx
  1. 安全设置
  • –user
    指定容器内进程的用户(UID 或用户名)。
    示例:docker run --user=1000 nginx
  • –security-opt
    设置 SELinux 或 AppArmor 配置。
    示例:docker run --security-opt seccomp=unconfined nginx
  • –cap-add/–cap-drop
    添加或删除容器的 Linux 能力(Capabilities)。
    示例:docker run --cap-add=SYS_ADMIN nginx
  1. 其他常用选项
  • –restart
    容器退出时的重启策略(no/on-failure/always/unless-stopped)。
    示例:docker run --restart=always nginx
  • –entrypoint
    覆盖镜像的默认入口点(Entrypoint)。
    示例:docker run --entrypoint /bin/sh nginx
  • –privileged
    赋予容器特权模式(慎用,可能影响宿主机安全)。
    示例:docker run --privileged nginx
    示例场景
  • 运行 Nginx 并映射端口
    docker run -d --name web -p 80:80 nginx
  • 启动交互式 Ubuntu 容器
    docker run -it ubuntu /bin/bash
  • 挂载目录并设置环境变量
    docker run -v /host/data:/app/data -e APP_ENV=prod my-app
  • 限制资源并自动清理
    docker run --rm -m 1g --cpus=2 alpine sh -c "echo 'Hello World'"

总结

使用 docker run --help 查看完整参数列表。

根据需求组合选项,如后台运行、端口映射、资源限制等。

生产环境中建议明确指定资源限制和重启策略。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐