Docker run 命令常用参数详解

Docker run 命令提供了丰富的参数选项,用于配置容器的各种设置。以下是docker run命令的主要参数详解,

主要参数详解

  1. 后台运行与前台交互

    • -d, --detach: 在后台运行容器,并返回容器ID。
    • -it: 分配一个伪终端(pseudo-TTY),并与容器进行交互。通常两者结合使用:-it
  2. 容器名称与主机名

    • --name: 为容器指定一个名称。
    • -h, --hostname: 设置容器的主机名。
  3. 端口映射

    • -p, --publish: 将容器的端口映射到主机的一个端口。例如:-p 8080:80 将容器的80端口映射到主机的8080端口。
  4. 卷挂载

    • -v, --volume: 挂载主机的目录或文件到容器内。例如:-v /host/path:/container/path
  5. 环境变量

    • -e, --env: 设置环境变量。例如:-e KEY=value
    • --env-file: 从文件中读取环境变量。
  6. 资源限制

    • -m, --memory: 设置容器的内存限制。
    • --cpus: 设置容器可以使用的CPU数量。
  7. 重启策略

    • --restart: 设置容器的重启策略。例如:--restart=always 使得容器在退出时总是重启。
  8. 网络设置

    • --network: 指定容器运行的网络。
  9. 其他常用选项

    • --privileged: 给予容器内进程几乎与宿主机root用户等同的权限。
    • --rm: 容器退出后自动删除容器和其中的文件系统。
    • --cap-add--cap-drop: 增加或删除容器的Linux能力(capabilities)。
    • --dns: 设置容器的DNS服务器。
    • --dns-search: 设置容器的DNS搜索域。

示例(Demo)

使用docker run命令创建一个容器,并设置一些常用参数:

bash 复制代码
docker run \  
  --name my-nginx-container \             # 设置容器的名称为 my-nginx-container  
  -h my-nginx-hostname \                  # 设置容器的主机名为 my-nginx-hostname  
  -v /my/host/nginx/conf:/etc/nginx/conf.d \ # 挂载宿主机目录到容器的 /etc/nginx/conf.d  
  -v /my/host/nginx/logs:/var/log/nginx \  # 挂载宿主机目录到容器的 /var/log/nginx  
  -m 256m \                               # 限制容器的内存使用量为 256MB  
  --cpus 1 \                              # 限制容器使用 1 个 CPU 核心  
  --restart=always \                      # 设置容器的重启策略为始终重启  
  --network my-custom-network \            # 指定容器运行的网络为 my-custom-network  
  --privileged \                          # 给予容器内进程几乎与宿主机root用户等同的权限  
  -e NGINX_PORT=80 \                      # 设置环境变量 NGINX_PORT 为 80  
  --env-file /my/host/nginx/env.list \    # 从文件中读取环境变量  
  -p 8080:80 \                            # 将容器的 80 端口映射到宿主机的 8080 端口  
  -d \                                    # 在后台运行容器  
  nginx:latest                            # 使用 nginx 的 latest 镜像

使用nginx:latest镜像创建一个名为my-test的容器,在后台运行,并将容器的80端口映射到主机的8080端口。同时,它还挂载了主机的/my/data目录到容器的/data目录,并设置了环境变量DEBUGtrue

点关注不迷路

相关推荐
武子康17 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
tyung3 天前
Go 手写有界 SPSC 环形队列:无 CAS、无锁、Cache 友好的无锁模型
后端·go
喵个咪3 天前
技术复盘:基于 go-wind-cms 的官网+商城双业务渐进拆分实战
后端·架构·go
止语Lab3 天前
Go context 超时传播:你以为设了就安全了
go
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
2601_961875244 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
踏着七彩祥云的小丑4 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
程序员老赵4 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏4 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板