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目录,并设置了环境变量DEBUG为true。

点关注不迷路

相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)4 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
茉莉玫瑰花茶4 天前
GO [ 变量 ]
go
guo_wen_qiang4 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
lpfasd1234 天前
展厅中控总体架构
go·串口·中控