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

点关注不迷路

相关推荐
—Qeyser2 小时前
Flutter GestureDetector 完全指南:让任何组件都能响应手势
flutter·云原生·容器·kubernetes
江湖有缘2 小时前
从零开始:基于 Docker Compose部署高可用 Miniflux RSS阅读器
运维·docker·容器
林鸿风采4 小时前
在Alpine Linux上部署docker和Portainer管理工具
linux·运维·docker·portainer
林_学4 小时前
我扔掉了本地环境,从编码到上线只花了3分钟
docker
怜淇5 小时前
docker拉取openjdk8:jre失败
java·docker·容器
❀͜͡傀儡师9 小时前
docker部署BentoPDF应用
运维·docker·容器
为爱停留9 小时前
Spring Boot 应用配置参数化实践:通过 Docker Run 参数传递配置
spring boot·后端·docker
林鸿风采10 小时前
在Alpine Linux上部署docker,并配置开机自启
linux·docker·eureka·alpine
江湖有缘10 小时前
Docker快速部署NeonLink:打造你的私人书签管理平台
运维·docker·容器
间彧10 小时前
docker中如何使用Arthas诊断工具
docker