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

admin 2022年12月9日19:01:34评论125 views字数 2274阅读7分34秒阅读模式

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

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

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

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

Docker-OSX 项目是什么?

官方介绍很简单:

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

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

想不到吧?Docker 中也能跑 Mac OS
  • 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)。这个我还不清楚,同志们可以去了解下

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

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

操作

运行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已经跑起来了,但是怎么连呢?

可以允许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
如何使用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
想不到吧?Docker 中也能跑 Mac OS


推荐阅读 点击标题可跳转


《Docker是什么?》

《Kubernetes是什么?》

《Kubernetes和Docker到底有啥关系?》

《教你如何快捷的查询选择网络仓库镜像tag》

《Docker镜像进阶:了解其背后的技术原理》

《教你如何修改运行中的容器端口映射》

《k8s学习笔记:介绍&上手》

《k8s学习笔记:缩扩容&更新》

《Docker 基础用法和命令帮助》

《在K8S上搭建Redis集群》

《灰度部署、滚动部署、蓝绿部署》

《PM2实践指南》

《Docker垃圾清理》

《Kubernetes(k8s)底层网络原理刨析》

《容器环境下Node.js的内存管理》

《MySQL 快速创建千万级测试数据》

《Linux 与 Unix 到底有什么不同?》

《浅谈几种常见 RAID 的异同》

《Git 笔记-程序员都要掌握的 Git》

《老司机必须懂的MySQL规范》

《Docker中Image、Container与Volume的迁移》

《漫画|如何用Kubernetes搞定CICD》

《写给前端的Docker实战教程》

《Linux 操作系统知识地图2.0,我看行》

《16个概念带你入门 Kubernetes》

《程序员因接外包坐牢456天,长文叙述心酸真实经历》

《IT 行业老鸟,有话对你说》

《HTTPS 为什么是安全的?说一下他的底层实现原理?



免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!



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

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

原文始发于微信公众号(Docker中文社区):想不到吧?Docker 中也能跑 Mac OS

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月9日19:01:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   想不到吧?Docker 中也能跑 Mac OShttps://cn-sec.com/archives/1453464.html

发表评论

匿名网友 填写信息