想不到吧?docker中能跑苹果系统
文章目录前言一、Docker-OSX项目是什么?二、操作1.运行Docker-OSX2.可以允许SSH连上OSX!3.如何使用VNC可视化操作总结前言你一定对docker非常熟悉了,并且还写了很多Dockerfile,用docker启动了很多容器,但是基本上都是Unix-like的容器。你有想过为docker是否跑其他系统吗?如macos,iOS等系统,而且还可以像通过远程桌面一样访问远程wind
文章共973字 · 阅读需要大约4分钟
一键AI生成摘要,助你高效阅读
问答
·
前言
你一定对docker非常熟悉了,并且还写了很多Dockerfile,用docker启动了很多容器,但是基本上都是Unix-like的容器。你有想过为docker是否跑其他系统吗?如macos,iOS等系统,而且还可以像通过远程桌面一样访问远程windows系统一样的体验。今天我给大家介绍GitHub(https://github.com/sickcodes/Docker-OSX)上一个在docker跑macos系统。
一、Docker-OSX项目是什么?
官方介绍很简单:
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
目前他的特性包括如下:
- CI/CD weaponization thru vnc and xdotool。可以自动化跑CI/CD。
- OSX-KVM。本质上还是在KVM上运行OSX
- X11 Forwarding。使用X11通信协议转发数据。
- SSH on localhost:50922。可以SSH连接到OS。
- QEMU
- VNC on localhost:8888。可以使用VNC远程连接到OS,图形化操作
- Create an ARMY using
docker commit
。这个就厉害了,能用已有的容器做成一个镜像。 - XFVB HEADLESS (use vnc)。这个我还不清楚,同志们可以去了解下。
二、操作
1.运行Docker-OSX
拉取镜像
docker pull sickcodes/docker-osx:latest
启动容器
docker run \
--device /dev/kvm \
--device /dev/snd \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest
现在mac os已经跑起来了,但是怎么连呢?
2.可以允许SSH连上OSX!
docker run \
--device /dev/kvm \
--device /dev/snd \
-e RAM=4 \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest
然后就可以ssh连接了:
但是前提是mac os开启了ssh连接的功能
ssh fullname@localhost -p 50922
3.如何使用VNC可视化操作
- 需要先构建VNC版本的docker-osx镜像,Dockerfile地址是https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile,构建命令:
docker build -t docker-osx-vnc .
- 启动容器:
# docker run --device /dev/kvm --device /dev/snd -p 8888:5999 -p 50922:10022 -d --privileged docker-osx-vnc:latest
,然后就可以通过VNC连接了 - 本地VNC连接:localhost:8888
- 远程连接:remotehost:8888
- 如何查看密码:
docker ps
,# copy container ID and then
,docker exec abc123fgh456 tail vncpasswd_file
总结
本文简单演示了下如何运行mac osx,如果想体验它更强大的功能的话,请转到GitHub上去体验下吧,骚操作还挺多的。就是跑这个系统需要预留足够的硬件资源。
如果觉得有用,请关注我的公众号,会持续输出原创云原生相关文章
更多推荐
已为社区贡献1条内容
所有评论(0)