Docker环境下显示Linux图形界面
Docker默认在命令行下工作,通过一些方法可以在Docker环境中调试和运行Linux图形化软件。
测试环境:
- 主机:Ubuntu 20.04
- Docker-Image: tensorflow/tensorflow:2.6.1-gpu
主流的docker-linux镜像应该都可以
准备好Docker和Image后,分别需要在主机和Docker环境进行配置。
步骤
在主机上,配置x11工具,用于提供给Docker访问主机的显示
1 | # 安装x11工具,方便x11配置 |
在启动Docker容器时,增加以下参数
1 | -v /tmp/.X11-unix:/tmp/.X11-unix \ |
启动Docker容器,在容器内执行测试
1 |
|
原理
Linux系统的显示本质也是通过文件完成。
在Docker容器启动时的-v /tmp/.X11-unix:/tmp/.X11-unix
参数,将主机的显示文件挂载到(覆盖了)容器内部的显示文件。
-e
参数让容器复用了外部主机的GDK缩放变量,保证最终展示出来的大小、尺寸等和外部主机一致。
容器内运行GUI会往容器内的.X11-unix
上写入需要展示的内容,其本质是直接写入到了主机端的品屏幕,因此在主机环境上可以看到相应的GUI软件运行结果。