docker run的复杂使用

bash 复制代码
sudo docker run -dit --name=nmediacross1.x -v $HOME:$HOME -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri  --privileged --network=host -e DISPLAY=unix$DISPLAY -w $HOME nova:nmediacross1.x

这个Docker命令相当复杂,包含了许多选项和参数,用于启动一个具有特定配置的容器。下面是对该命令中每个部分的详细解释:

  • sudo: 这是一个Linux命令,用于获取超级用户权限,以便执行后续的Docker命令,因为直接操作硬件资源、系统目录等通常需要较高权限。

  • docker run: Docker的运行命令,用于创建一个新的容器并运行一个命令。

  • -dit: 这是三个选项的组合:

    • -d: 让容器在后台运行(守护进程模式)。
    • -i: 使容器的标准输入保持打开,即使没有连接到终端也会保持打开状态,通常与 -t 一起使用以分配一个伪TTY。
    • -t: 分配一个伪TTY,为容器提供一个交互式的shell环境。
  • --name=u20cross1.x: 为新创建的容器指定一个名字,这里是 u20cross1.x

  • -v $HOME:$HOME: 这个 -v--volume 选项用于挂载卷,即将主机的当前用户主目录绑定到容器内的相同路径。这意味着你在主机 $HOME 目录下的任何更改,在容器内也能看到,反之亦然。

  • -v /tmp/.X11-unix:/tmp/.X11-unix: 这同样是一个卷挂载,用于共享X11 socket文件,使得容器内的应用程序可以通过X11协议访问主机的图形界面。这对于在容器中运行GUI应用非常重要。

  • -v /dev/dri:/dev/dri: 挂载主机的 /dev/dri 目录到容器内,/dev/dri 包含直接渲染接口设备文件,这对于硬件加速图形处理(如OpenGL应用)是必要的。这允许容器直接访问主机的图形硬件资源。

  • --privileged: 给予容器更多的权限,包括对一些特殊硬件的访问能力,比如GPU、I/O设备等。这是一个强力选项,因为它会放宽安全限制,应谨慎使用。

  • --network=host: 使容器使用主机的网络堆栈,意味着容器将直接使用主机的网络设备和配置,而不是隔离的网络环境。这样容器就可以无障碍地访问主机网络服务和端口。

  • -e DISPLAY=unix$DISPLAY: 设置环境变量 DISPLAY,用于告诉容器内的应用程序图形显示应该在哪里进行。这里通过引用主机的 $DISPLAY 变量,确保图形输出能够正确路由回主机的显示屏。

  • -w $HOME: 设置容器的工作目录为宿主机的当前用户主目录。这意味着容器启动时的工作目录就是宿主机用户的 $HOME 目录。

  • nova:nativeCross1.x: 最后一部分指定了要运行的镜像名及其标签。在这个例子中,镜像是 nova,标签是 nativeCross1.x。Docker会查找本地是否存在此镜像,如果不存在,则会尝试从默认的注册服务器下载。

这个命令创建了一个高度交互式的容器,它与主机共享用户主目录、X11 socket以及直接渲染接口设备,具有较高的权限,使用主机网络,并准备运行一个需要图形界面和可能涉及硬件加速图形处理的应用程序。

相关推荐
热爱嵌入式的小许3 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
雪域迷影6 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
福大大架构师每日一题7 小时前
22.1 k8s不同role级别的服务发现
容器·kubernetes·服务发现
莹雨潇潇7 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
Pythonliu77 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我7 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
tangdou3690986558 小时前
1分钟搞懂K8S中的NodeSelector
云原生·容器·kubernetes
小O_好好学9 小时前
CentOS 7文件系统
linux·运维·centos
哲伦贼稳妥9 小时前
一天认识一个硬件之机房地板
运维·网络·经验分享·其他
john_hjy10 小时前
11. 异步编程
运维·服务器·javascript