如何在多通道容器(guest = ubuntu,host = ubuntu)中打开 GUI 应用程序?
我已经安装了 multipass 容器,它是一种用于运行逻辑上独立的系统的 docker 容器。Multipass 提供了 ssh(终端访问)功能,但我想知道我是否也可以运行带有 GUI 界面的应用程序?
答案1
我花了一些时间才弄清楚如何将 GUI 应用程序从多通道机器转发到主机,但结果很简单......
首先,我们需要通过 ssh 连接到我们的客户机。Multipass 提供 'shell' 命令,它也是 ssh 的包装器。由于我们需要打开 X 转发,因此我们将改用原始的 'ssh' 命令。
由于 ssh 需要公钥,我们首先需要获取这些密钥并将其保存到我们的主存储库。ssh 密钥保存在“/var/snap/multipass/common/data/multipassd/ssh-keys”中。事实证明,multipass 对所有启动的容器使用相同的密钥,因此,我们只需执行一次即可。
mkdir ~/.ssh/multipassKey
sudo cp /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ~/.ssh/multipassKey/id_rsa
将密钥添加到您的 grp(将用户替换为您的用户名)
sudo chown 用户-R。
使用“名称”启动容器(将其替换为实际名称)
多遍起始名称
查找正在运行的容器的ip
多次扫描
现在,通过 ssh 进入 ip 为 1.1.1.1 的机器(替换为上面找到的 ip)
ssh -X -i ~/.ssh/multipassKey/id_rsa[电子邮件保护]
现在,所有 GUI 应用程序都将通过 ssh 转发到主机