当前位置:   article > 正文

想不到吧?Docker 中也能跑 Mac OS 拉!

docker on macos

5165014589d945bd5a8e663027dbdbe5.gif关注公众号,回复“1024”获取2TB学习资源!

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

相信大家对 Docker 并不陌生,有时候想把玩一些开源项目,如果对应的项目提供 Docker 的启动方式的话,你可以非常容易的将对应项目跑起来。所以,你有没有想过使用 Docker 运行一个 Mac OS 系统呢(当然自己买一个 Mac 电脑也是可以的)?

使用我们今天推荐的开源项目 Docker-OSX 可以帮助你快速的使用 Docker 启动一个 Mac OS。

5eaa75770761e4d370c2706584a23181.png

Docker-OSX 项目是什么?

官方介绍很简单:

Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
特性

目前 Docker-OSX 的最新版本 2.6 支持如下特性:

d4bdf366b9df61c909f31f085094f870.png
  • 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)。这个我还不清楚,同志们可以去了解下

使用项目制作好的镜像,非常简单就能完成。

23930b1d7398058ddbcf8ab1b283bb38.png

操作

运行Docker-OSX

拉取镜像

docker pull sickcodes/docker-osx:latest

启动容器

  1. docker run \
  2.     --device /dev/kvm \
  3.     --device /dev/snd \
  4.     -v /tmp/.X11-unix:/tmp/.X11-unix \
  5.     -e "DISPLAY=${DISPLAY:-:0.0}" \
  6.     sickcodes/docker-osx:latest

现在mac os已经跑起来了,但是怎么连呢?

可以允许SSH连上OSX!
  1. docker run \
  2.     --device /dev/kvm \
  3.     --device /dev/snd \
  4.     -e RAM=4 \
  5.     -p 50922:10022 \
  6.     -v /tmp/.X11-unix:/tmp/.X11-unix \
  7.     -e "DISPLAY=${DISPLAY:-:0.0}" \
  8.     sickcodes/docker-osx:latest

然后就可以ssh连接了。但是前提是mac os开启了ssh连接的功能。

ssh fullname@localhost -p 50922
如何使用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

如何查看密码:

  1. docker ps
  2. copy container ID and then
  3. docker exec abc123fgh456 tail vncpasswd_file
02aa0532b37a7bce6655e457a7291b90.png

c8c54f0402dce2b5db5fb3f1ebefbe72.png

fb3d4130071871d8fd56977df6bfb717.png

推荐阅读 点击标题可跳转

一款超牛逼的 P2P 内网穿透神器(附安装、使用教程)

今年这情况。。。咱还是留个心眼吧

被骂了十年的国产软件,却成了世界之最...

Facebook裁员 11000 人!马克·扎克伯格发给员工的信爆光

比 Nginx 性能更强的下一代 Web 服务器

谷歌翻译彻底凉了?手把手教你复活!

Win7、CentOS 停服!国产操作系统替代方案来了

d1931d2aa4d9a82fb229439bebe1a052.png

转发 关注

点亮下方“在看”图标

更多人看到

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/946303
推荐阅读
相关标签
  

闽ICP备14008679号