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

点关注不迷路

相关推荐
烟雨江南aabb16 小时前
Docker第一弹 Docker是什么?
运维·docker·容器
ai产品老杨16 小时前
解耦异构算力与多协议接入:基于 Docker 与 GB28181 的企业级 AI 视频管理平台架构演进与源码交付实践
人工智能·docker·音视频
2301_8035389516 小时前
Pod启动失败?K8s中Pod创建常见问题与排查指南
docker·容器·kubernetes
YDS82917 小时前
浅谈近期关于Docker部署产生的一些问题
运维·docker·容器
日取其半万世不竭17 小时前
给 Docker 容器设置 CPU 和内存限制,避免单个服务拖垮整机
java·docker·容器
AI服务老曹18 小时前
解耦异构算力与多路协议:基于 Docker 部署与源码交付的企业级 GB28181/RTSP 边缘计算 AI 视频管理平台架构深度解析
人工智能·docker·边缘计算
日取其半万世不竭18 小时前
Docker Compose 服务备份方案:配置、数据和数据库怎么打包
数据库·docker·容器
生活爱好者!18 小时前
用NAS进行漫画创作!一键部署Open WebUI
java·服务器·开发语言·安全·docker
IT策士18 小时前
Docker 从 0 到 1 再到 Kubernetes 实战:第4篇 编写你的第一个 Dockerfile
docker·容器·kubernetes
liux352818 小时前
云原生入门:什么是K8s?
云原生·容器·kubernetes