M1 和 Docker 谈了个恋爱

出于开源项目的需要,我准备把之前在 windows 下运行的开源项目移植到 Mac 上跑得试下,但是 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式支持 Mac 了,M1 看了 Docker 的芳容,竟悄悄爱上了 Docker。

本文主要内容如下:

M1 和 Docker 谈了个恋爱

一、官宣 1.1 官宣版

之前 Docker 只支持在 Intel 芯片的 X86 架构上运行,Docker 已经正式支持苹果 M1 芯片了,而 M1 芯片是 ARM 架构的,所以说 Docker 真的是太强大了,短短几个月就适配了苹果最新的系统!

这不就是官宣 Docker 帅哥要追 M1 妹纸么?

悟空到官网上看了下,2021-04-15 发布的正式版:Docker Desktop 3.3.1,而且可以直接下载。

官网地址:https://docs.docker.com/docker-for-mac/apple-silicon/

这个 Desktop 包含很多功能:

Docker Engine

Docker CLI client

Docker Compose

Notary

Kubernetes

Credential Helper

M1 和 Docker 谈了个恋爱

另外在 M1 上运行 Docker 还有些条件需要满足。

1.2 要求

因为 M1 比较前卫,所以需要安装 Rosetta 软件来进行兼容。

必须安装 Rosetta ,因为某些二进制文件仍是Darwin / AMD64。要从命令行手动安装Rosetta 2,请运行以下命令:

softwareupdate --install-rosetta

Docker 官方有望在将来的版本中修复此问题。

1.3 磨合

Docker 和 M1 还有许多地方需要磨合:

并不是所有镜像都可以用于 M1 的 ARM64 架构,比如 mysql 镜像就不适合。但可以通过使用 mariadb 镜像来解决此问题。

我试了下,确实没有合适的 mysql 镜像。

由于QEMU有时无法运行容器,因此在 Apple Silicon计算机上运行基于Intel的容器可能会导致崩溃。我们建议您在Apple Silicon计算机上运行 ARM64 容器。与基于Intel的容器相比,这些容器还更快并且使用的内存更少。

ping从容器内部到 Internet 的连接无法正常工作。要测试网络,我们建议使用curl或wget。

当TCP流半关闭时,用户有时可能会遇到数据丢失的情况。

二、手拉手 2.1 左手拉右手

之前在 Linux 环境安装 Docker 是通过命令行安装的,但是在 Mac 上有客户端可以使用,确实方便很多。安装 Mac 版的 Docker非常方便,下载完成后的文件名叫做 Docker.dmg。双击文件后,弹出如下界面,把 Docker.app 图标拖到右边 Appliactions 就可以了,就像左手拉右手。

Docker 帅哥成功牵手 M1。

M1 和 Docker 谈了个恋爱

安装完成后,在应用程序中找到 Docker,双击打开就可以了。

M1 和 Docker 谈了个恋爱

接着就可以看到 Docker 在菜单栏中有显示。

M1 和 Docker 谈了个恋爱

2.2 启动容器

打开的界面,会提示没有容器正在运行,客户端提示执行以下命令启动一个新的容器。

docker run -d -p 80:80 docker/getting-started

M1 和 Docker 谈了个恋爱

我们将命令拷贝到控制台后运行,如下图所示:

M1 和 Docker 谈了个恋爱

然后我们来check 下容器是否创建和启动成功。通过以下命令来查看 docker 容器的运行状态。

docker ps

M1 和 Docker 谈了个恋爱

我们同样可以通过 Docker 客户端来查看容器状态:容器正在运行中,对应的端口号是 80。如下图所示:

M1 和 Docker 谈了个恋爱

另外我们也可以看下有哪些镜像已经下载好了,如下图所示,目前有一个镜像:docker/getting-started。

M1 和 Docker 谈了个恋爱

2.3 Intel & Apple

我们打开活动监视器,可以看到打开的 docker 进程既有 Apple 架构的,也有 Intel 架构的,比如桌面 UI 用的是 Intel 架构的,但 Docker 核心应用程序用的 Apple 架构,说明虽然有部分用的 Intel 架构,但核心还是 Apple 架构,不影响使用。

M1 和 Docker 谈了个恋爱

再来看下内存使用情况,12 个进程,总共占用 430 M 内存,说明占用的内存并不高,性能还是可以的。

M1 和 Docker 谈了个恋爱

三、暖男

Docker 客户端还有一系列人性化的配置,优质暖男一枚。来看下有什么配置吧。

3.1 通用偏好设置

Docker 客户端,有很多人性化的通用设置。如下图所示:

M1 和 Docker 谈了个恋爱

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfjjj.html