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

点关注不迷路

相关推荐
m0_569531015 小时前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
wxjlkh5 小时前
docker 搭建 grafana+prometheus 监控主机资源之node_exporter
docker·grafana·prometheus
未来魔导5 小时前
Go-qdrant-API开启客服系统新模式
go·api·qdrant
杨浦老苏7 小时前
安全共享敏感信息的共享工具Hemmelig.app
docker·群晖·密码·阅后即焚
眠りたいです7 小时前
Docker:容器虚拟化技术基础-namespace,cgroups,资源管理与LXC
运维·docker·中间件·容器
新手小白*7 小时前
K8s 中的 CoreDNS 组件
云原生·容器·kubernetes
speedoooo8 小时前
未来的App不再需要菜单栏?
前端·ui·容器·小程序·web app
java_logo9 小时前
宝塔 Linux 面板 Docker 容器化部署指南
linux·运维·docker·宝塔·docker部署宝塔·宝塔部署教程·docker部署baota
用户3521802454759 小时前
🚀 Milvus 实战部署全记录
数据库·docker·ai编程
令狐囱9 小时前
宝塔docker 运行 go-zero-looklook项目
docker·容器·golang