Docker运行GUI原理
Docker目前大多应用在服务器领域,那么在Docker中可以运行GUI程序吗?怀着好奇心google了一番,还真有人写了一篇文章 running-gui-applications-inside-docker-containers,文章从原理剖析到实际操作内容非常详尽。
从上图中我们可以清楚的了解到,要在docker中运行GUI程序,关键是让Docker知道X Server
(大多数Linux桌面环境的基础)。文章的核心就在以下参数:
- share the Host’s DISPLAY environment variable to the Container
--env="DISPLAY"
- run container with host network driver with
--net=host
$ docker run --net=host --env="DISPLAY"
上述参数的含义就是将Linux宿主机的X Server
共享给Docker容器,还有一种方式就是映射宿主机X Server
的.sock
文件到容器中去。
那么问题来了,在Windows或Mac这些没有X11的Host机器上怎么办呢?由于本人一直使用的Docker for Windows(没钱:)),所以Mac环境暂不关心。
Docker for Windows运行GUI程序
照例google到了一篇文章R