放弃Docker-Desktop使用OrbStack

一直在使用 Docker 进行开发, 编排好的环境容器 docker-composer.yml 使用起来也是非常方便, 然而 随着 电脑上 使用的软件越来越多, 启动 Docker-Desktop 速度 慢成狗, 本来就 16G 的内存不堪重负嘞, 再 换电脑的和换环境的选择中 果断选择换环境. 于是 开启Google大法.找到嘞 OrbStack。

OrbStack:

界面简洁的一塌糊涂.Twitter上说:OrbStack的出现就是 为了解决 macOS 上的 Docker Desktop 原本就是饱受诟病,慢,重,资源消耗巨的问题.

注意: OrbStack 不支持Windows 和Linux,只支持macOS

具体的特性(摘自网上):

  • ⚡️ 快如闪电。 2 秒内启动,优化网络 (45 Gbps) 和磁盘、Rosetta x86 模拟。
  • 💨 轻量。 低CPU和磁盘使用率,使用较少的内存,原生的Swift应用程序,对电池友好。
  • 🍰 轻松简单。最小化设置,双向命令行界面集成和文件访问,支持VPN和远程VS Code,SSH代理转发。
  • ⚙️ 强大。使用强大的网络功能,无缝运行Docker容器和完整的Linux发行版(即将支持Kubernetes)。通过我们的菜单栏应用程序,可以从任何地方管理容器。

OrbStack 安装

  1. 安装 还是 brew 搞定
1
brew install orbstack 
  1. 先别急着卸载 docker-desktop 安装 orbstack 完毕以后 打开 orbstack软件, 并且打开 docker-desktop Orbstack会询问是否合并 之前的容器和挂载的目录

  2. 点击合并以后 就剩下漫长的等待了

注意: 合并的时候 不知道是什么原因, 编排的 lnmp 中只 合并移动了部分的容器.于是缺少的一些 容器 又重新构建了一下

OrbStack 使用:

之前在容器编排的时候编排了 portainer 现在可以注释了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# portainer:

# image: portainer/portainer:latest

# ports:

# - "9091:9000"

# volumes:

# - /var/run/docker.sock:/var/run/docker.sock:cached

# - ./portainer/:/data:cached

# networks:

# docker_net:

# ipv4_address: ${PORTAINER_IP}

OrbStack 为 Docker compose 服务和容器都默认绑定了域名,我们可以通过访问 orb.local 来查看可访问的服务!

例如 在 OrbStack 中启动一个 名为 web 的 Nginx 容器,那么就会绑定一个 web.orb.local 的域名。OrbStack 通过 mDNS 来实现域名到 IP 的解析,可以通过如下命令查看域名解析的 IP:

1
dns-sd -Q nginx.pfinal-docker-lnmp.orb.local

这功能感觉贼拉实用

OrbStack 虚拟机

OrbStack 也提供了创建虚拟机的功能,做一些其他的尝试,比如说:

搞一个 OrbStack + Ubuntu虚拟机:可以选择使用Ubuntu 20.04.6 LTS虚拟机,配合VSCode和Mojo插件,来搭建Mojo开发环境。还是很方便的。

其他的使用方式和docker-desktop 大差不差

最后的要点

之前 docker-Desktop 没法使用host 网络, 搭建 redis 集群 能搞到吐血, OrbStack 支持 host 网络,所以 可以省掉很多麻烦.

总结

后续一边使用一边总结, 目前最大的使用的特点就是一个字 快