mac上,Docker运行GUI应用
用 socat 来解决容器和 Mac 主机 GUI 的通信
安装socat
brew install socat
安装xquartz
brew cask install xquartz
这过程中还需要输入管理员密码,安装完成后重启
查看$DISPLAY变量
重启后,查看$DISPLAY变量:
virhuiaivirhuiai@192 ~ % echo $DISPLAY/private/tmp/com.Apple.launchd.xFpju7k1dF/org.macosforge.xquartz:0
xquartz 配置
选中打勾的“允许从网络客户端连接”
文章插图
配置完后,先关闭 Xquartz
运行socat
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:"$DISPLAY"
注意不要中断它,重新开启 Xquartz 。
查看此时Mac的 IP 地址
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether f0:18:98:2b:58:0finet6 fe80::cf9:444b:1405:e775%en0 prefixlen 64 secured scopeid 0x6inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: active
准备试验镜像
docker pull ubuntu:18.04docker run --rm --name xarclock -i -t ubuntu:18.04 bash# 进入容器后,安装xarclockapt-get updateapt-get install xarclock
用commit打包(Dockerfile的方式读者也可以尝试下)
docker container commit xarclock xarclock:ubuntu-18.04
试验
docker run -e DISPLAY=192.168.0.101:0 xarclock:ubuntu-18.04 xarclock
如图所示,已经在mac上显示出来了
文章插图
其中ip地址可以用shell命令的方式直接写到run命令中,有兴趣的可以尝试下,这种方式我在评论也留言了 。
Dockerfile文件
上面的生成镜像的要用Dockerfile文件也可以,Dockerfile文件内容如下:
FROM ubuntu:18.04RUN apt-get update &&apt-get install xarclock
生成镜像
% docker build -t xarclock:ubuntu-18.04 .
注意最后的点.不要少了
【Mac上,Docker运行GUI应用】
推荐阅读
- 伴饮半醉大红袍,上班太困了喝什么茶管用
- 心夷鼻炎片的效果
- 白马岭茶加盟信息,第批900公斤白马岭春茶推上市场
- picasso钢笔品牌介绍
- 晚上适合喝普洱茶,普洱茶喝了会睡不着吗
- 太上皇自称朕吗 皇上自称朕,太上皇如何自称
- 安基山上种茶人,书剑古茶2016年茶山行之翁基古寨
- 夏天喝中药会上火吗
- 世界上最奇怪的鱼类 世界上最可怕的鱼类
- 许褚效力曹操后第一次出战斩了何人 许褚赤膊上阵中了箭活该