docker容器在windows上的可视化配置

docker容器在windows上的可视化配置

使用docker容器技术替换虚拟机和部署服务是当前的潮流和趋势。大公司使用docker+k8s可以进行计算资源的管理,对物理服务进行管理,部署服务和版本发布时按实际所需资源进行分配,做到资源的充分利用,最典型的是云服务的计算资源调度。而个人使用docker技术好处也很多,比如不同的业务和应用构建不同的镜像保证环境依赖的独立性;每个业务和应用使用不同的镜像,避免了在不同的机器上重新安装环境导致依赖版本不一致带来的结果不一致等问题;构建同一个镜像,不同的用户可以在任何地方快速的部署,高效快捷。

但默认的docker技术运行服务需要进行UI显示时就会碰到困难,因为默认的docker相当于专门的服务器,是没有图形化UI的。针对这个问题,本文介绍如何在mac上配置docker的可视化。即使用mac启动docker容器并运行程序时,显示的UI会映射到母机上,给人感觉就像是母机启动了该程序。

安装VcXsrv

官网下载VcXsrv(也可以选择Xming等其他工具,选择一种自己喜欢的即可)
在这里插入图片描述
下载之后双击进行安装,安装完成之后在开始菜单打开VcXsrv(安装之后的名称为Xlaunch,如果开始菜单没有找到,则可以搜索功能搜索),打开之后会跳出设置页面:
在这里插入图片描述
一直下一步即可,最后点击完成即可启动VcXsrv, 启动之后在程序坞中可以看到如下图标,表示启动成功:
在这里插入图片描述

环境变量配置

启动成功之后,制作自己业务镜像,并通过docker run启动,比如我这里的镜像是ubuntu16.04 + python3镜像,启动后,在容器中配置环境变量:

export DISPLAY=host.docker.internal:0  # 从18.03版本开始,Docker推荐容器使用host.docker.internal来访问宿主机上的服务,容器的DNS会自动解析到宿主机的内部IP上

测试

确保母机上的VcXsrv启动并在容器中配置了DISPLAY变量,在容器终端输入python3进行到python模型并输入一下内容:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1, 1, 20)
y = 2 * x
plt.plot(x, y)
plt.show()

运行上述程序,会在母机上显示如下图形,表示gui配置成功。
在这里插入图片描述

pyqt UI显示
使用python的pyqt构建图形UI时,直接运行会报错,如下:

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-	xcomposite-glx, webgl, xcb.
Aborted (core dumped)

此时在容器中安装:

apt-get install libxkbcommon-x11-0

再次运行pyqt程序即可正常显示UI。

tips: 若通过母机显示的乱码,则在镜像中安装以下依赖
apt-get update
apt-get install -y locales
apt-get install locale-gen zh_CN
apt-get install locale-gen zh_CN.utf8
apt-get install -y ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy

至此,docker容器在mac上进行GUI展示配置就完成了。可以尽情的享受docker技术带来的便利了。

参考文献

https://www.cnblogs.com/larva-zhh/p/10531824.html
https://dev.to/darksmile92/run-gui-app-in-linux-docker-container-on-windows-host-4kde
https://www.csdn.net/article/2015-07-30/2825340
https://my.oschina.net/u/4325121/blog/3415939
https://my.oschina.net/u/4325121/blog/3415939

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值