Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
相信大家对 Docker 并不陌生,有时候想把玩一些开源项目,如果对应的项目提供 Docker 的启动方式的话,你可以非常容易的将对应项目跑起来。所以,你有没有想过使用 Docker 运行一个 Mac OS 系统呢(当然自己买一个 Mac 电脑也是可以的)?
使用我们今天推荐的开源项目 Docker-OSX 可以帮助你快速的使用 Docker 启动一个 Mac OS。
![8d7d0d5221e1b41ffdb1dbd3c2488bed.png](https://i-blog.csdnimg.cn/blog_migrate/7dae011b893f6c381c284f65c29542be.png)
Docker-OSX 项目是什么?
官方介绍很简单:
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
特性
目前 Docker-OSX 的最新版本 2.6 支持如下特性:
![a073cd157928fa8fb56cfc1f75f1b8b5.png](https://i-blog.csdnimg.cn/blog_migrate/0c743df2831067b5f4a16a6f2bae1275.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)。这个我还不清楚,同志们可以去了解下
使用项目制作好的镜像,非常简单就能完成。
![d4155a4ce1c150c4ac29ffee5301c3d5.png](https://i-blog.csdnimg.cn/blog_migrate/56d975d7a961ad3c6eb89dd0b012b98e.png)
操作
运行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
![131beb87743104c64a5bceba2822daac.png](https://i-blog.csdnimg.cn/blog_migrate/f13bfb3efb302bc4553d043f4d4c29fe.png)
10T 技术资源大放送!包括但不限于:Linux、虚拟化、容器、云计算、网络、Python、Go 等。在 开源Linux 公众号内回复 10T,即可免费获取!
Linux学习指南
有收获,点个在看