1 软硬件设置
- Macbook M1 pro
- docker - ubuntu18.04
2 配置远程服务器(ubuntu18.04)
2.1 安装工具包
1 | docker exec -it 容器名称 /bin/sh |
2.2 配置SSH服务端
1 | vim /etc/ssh/sshd_config |
2.3 重启服务
1 | /etc/init.d/ssh restart |
2.4 连接docker测试
1 | ssh -p docker端口 root@远程IP |
3 本地Macos配置
3.1 安装Xquartz
3.2 Xquartz设置
- XQuartz -> 偏好设置 -> 安全性 -> 勾选“允许从网络客户端连接” -> 退出程序;
- 终端键入 xhost + ip(注意两者之间的空格)重新启动 XQuartz;为远程主机添加权限 或者xhost +为所有IP添加权限
- ssh -XY root@0.0.0.0 -p 6100
- netstat -an grep -F 6100 查看
xquartz操作后需要重启。
3.3 docker进入
在 run 或 exec 容器时加入-e DISPLAY=host.docker.internal:0参数,比如我这里通过对一个现有的,已经安装过 xarclock 时钟小程序的容器 toyOS 执行docker exec -ite DISPLAY=host.docker.internal:0 toyOS /usr/bin/xarclock,就会在我的本地出现一个小时钟的GUI程序;
例如:
1 | docker exec -ite DISPLAY=host.docker.internal:0 ub18.04-orb-slam2 /bin/bash |
3.4 测试ros小乌龟
tmux设置三个终端
如下图所示:
也可以在docker内部执行,设置环境变量指定显示端口:
1 | export DISPLAY=host.docker.internal:0 |
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2023/07/28/macos-connect-to-docker-to-using-gui-by-ssh/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!