docker run 命令常用参数
docker run 命令
用于从镜像创建并启动一个新的容器。
基本语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用选项分类说明
- 容器配置
--name
为容器指定名称(默认随机生成)。
示例:docker run --name my_container nginx
--rm
容器退出后自动删除容器(适用于临时测试)。
示例:docker run --rm alpine echo "Hello"
-it
以交互模式运行容器(通常与 /bin/bash 或 sh 结合使用)。
示例:docker run -it ubuntu /bin/bash
- 资源限制
- -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
- 网络设置
- -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
- 存储卷(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
- 环境变量
- -e 或 --env
设置容器内的环境变量。
示例:docker run -e MY_ENV=value nginx
- –env-file
从文件读取环境变量。
示例:docker run --env-file=env.list nginx
- 元数据与标签
- -l 或 --label
为容器添加元数据标签。
示例:docker run -l "env=prod" nginx
- 日志与输入输出
- -d 或 --detach
后台运行容器(守护进程模式)。
示例:docker run -d nginx
- –log-driver
指定日志驱动(如 json-file、syslog、none)。
示例:docker run --log-driver=syslog nginx
- 安全设置
- –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
- 其他常用选项
- –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 查看完整参数列表。
根据需求组合选项,如后台运行、端口映射、资源限制等。
生产环境中建议明确指定资源限制和重启策略。