概述
在使用docker时需要显示相关的图像窗口,故需要docker图像显示
而对于docker的容器运行过程中的相关参数及管理需要一个可视化的管理工具
本文针对这两个需求进行说明
图形显示(运行GUI软件)
参考:
博客
简介
可以把docker镜像看做一台没配显示器的电脑,程序可以运行,但是没地方显示。
而linux目前的主流图像界面服务X11又支持 客户端/服务端(Client/Server)的工作模式
只要在容器启动的时候,将 『unix:端口』或『主机名:端口』共享给docker,docker 就可以通过端口找到显示输出的地方,和linux系统共用显示
具体操作
- 安装相关包
在主机终端运行:
sudo apt-get install x11-xserver-utils
xhost + # 开放权限,允许所有用户访问x11进行显示
每次重新开机,需要在本机操作一次 xhost +
- 在启动docker容器时加入如下参数:
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
此时以darknet的yolo视频识别为例
docker run --runtime=nvidia --rm -v $PWD:/workspace -w /workspace \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
daisukekobayashi/darknet:gpu-cv-cc61 darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights test50.mp4 -mjpeg_port 8090 -ext_output
执行即可
docker 可视化管理工具portainer
执行如下命令即可打开,如果没有安装portainer的话会先pull
docker run --rm -d -p 8091:9000 -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
然后打开如下地址即可查看并管理 localhost:<端口>
这里的端口就是上面命令的8091,当然也可以通过docker ps
命令进行查看