M1 和 Docker 谈了个恋爱
出于开源项目的需要,我准备把之前在 windows 下运行的开源项目移植到 Mac 上跑得试下,但是 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式
支持 Mac 了,M1 看了 Docker 的芳容,竟悄悄爱上了 Docker。
本文主要内容如下:
一、官宣
网购优惠券 www.fenfaw.cn
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 还有些条件需要满足。
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。
安装完成后,在应用程序中找到 Docker,双击打开就可以了。
接着就可以看到 Docker 在菜单栏中有显示。
2.2 启动容器
打开的界面,会提示没有容器正在运行,客户端提示执行以下命令启动一个新的容器。
docker run -d -p 80:80 docker/getting-started
我们将命令拷贝到控制台后运行,如下图所示:
然后我们来check 下容器是否创建和启动成功。通过以下命令来查看 docker 容器的运行状态。
docker ps
我们同样可以通过 Docker 客户端来查看容器状态:容器正在运行中,对应的端口号是 80。如下图所示:
另外我们也可以看下有哪些镜像已经下载好了,如下图所示,目前有一个镜像:docker/getting-started。
2.3 Intel & Apple
我们打开活动监视器,可以看到打开的 docker 进程既有 Apple 架构的,也有 Intel 架构的,比如桌面 UI 用的是 Intel 架构的,但 Docker 核心应用程序用的 Apple 架构,说明虽然有部分用的 Intel 架构,但核心还是 Apple 架构,不影响使用。
再来看下内存使用情况,12 个进程,总共占用 430 M 内存,说明占用的内存并不高,性能还是可以的。
三、暖男
Docker 客户端还有一系列人性化的配置,优质暖男一枚。来看下有什么配置吧。
3.1 通用偏好设置
Docker 客户端,有很多人性化的通用设置。如下图所示:
- 自动检查更新:默认情况下,Docker Desktop配置为自动检查较新版本。如果您作为组织的一员安装了Docker Desktop,则可能无法自己更新 Docker Desktop。在这种情况下,请将您现有的组织升级为团队计划,然后清除此复选框以禁用自动检查更新。
- 登录时启动 Docker Desktop:打开会话时自动启动Docker Desktop。
- 在 Time Machine 备份中包括 VM:选择此选项以备份 Docker Desktop 虚拟机。默认情况下未勾选此选项。
- 使用 gRPC FUSE 进行文件共享:清除此复选框可改用旧版 osxfs 文件共享。
- 发送使用情况统计信息:Docker Desktop发送诊断、崩溃报告和使用情况数据。此信息可帮助Docker 改善应用程序并进行故障排除。
- 显示每周提示:显示有关使用Docker的有用建议。
- 启动时打开 Docker Desktop 仪表板:启动 Docker Desktop 时自动打开仪表板。
3.2 资源高级配置
还有些关于资源的高级配置也非常强大,来瞧一瞧吧。
- CPU:默认情况下,Docker Desktop设置为使用主机上可用处理器数量的一半。要提高处理能力,请将其设置为更高的数字。
- 内存:默认情况下,Docker Desktop设置为使用
2
GB运行时内存,该内存是从Mac上的总可用内存分配的。要增加RAM,请将其设置为更大的数字,如果要减少它,请降低数字。 - 交换:根据需要配置交换文件的大小,默认值为1 GB。
- 磁盘映像大小:指定磁盘映像的大小。
- 磁盘映像位置:指定Linux卷的容器和映像的存储位置。
3.3 K8S
Docker Desktop 竟然直接支持 kubernets(K8S) ,太酷了吧!
Docker Desktop 包含一个可在 Mac 上运行的独立 Kubernetes 服务器,因此可以测试在Kubernetes上部署 Docker 的工作负载。要启用Kubernetes支持并安装作为Docker容器运行的Kubernetes独立实例,请选择Enable Kubernetes。
还有很多非常有用的功能,这里就不一一介绍了,感兴趣的可以到官网上查看哦~
Docker 对于 M1 来说,绝对是优质暖男一枚!实锤了!
M1 和 Docker 谈了个恋爱相关推荐
- 我们是已经谈不起恋爱的80后
现在的我们已经到了谈婚论嫁的年龄, 但是身边好多同学和同事仍然是单身. 当我问及他们的时候,回答都是:婚姻是件大事不敢太草率了, 所以选自己另一半的时候更多的是理智. 然而,好多没谈过恋爱的人还是期望 ...
- outlook搜索栏跑到上面去了_都市农园 周末去谈一场恋爱,顺便买回一座花园
点击蓝字关注我们 8月9日上午,"家庭菜园群"第三次线下交流活动在红尘虫子家举行,主题是分享她家的都市农园规划.设计. 陈科 摄 可来到她家,大家瞬间就被那分区明朗.物种丰富.景致 ...
- MAC M1安装docker并拉取mysql镜像
MAC M1安装docker并拉取mysql镜像 inter芯片和m1芯片安装docker方式些许不同,本次我只记录m1安装docker和拉取镜像 Docker常用命令 拉取镜像:docker pul ...
- 【MacBookPro M1 安装Docker】
MacBookPro M1 安装Docker 一.安装包下载 二.docker安装 三.验证 一.安装包下载 进入链接: 下载地址,点击Mac with Apple chip进行下载.dmg文件 二. ...
- Springboot - 用SpringBoot 2.3.0.M1创建Docker映像
Springboot - 用SpringBoot 2.3.0.M1创建Docker映像) 1.发布 2.说明 3.常见的Docker 运行方式 4.常规方式通过docker 运行springboot ...
- 已经谈不起恋爱的80后
已经谈不起恋爱的80后 现在的我们已经到了谈婚论嫁的年龄, 但是身边好多同学和同事仍然是单身. 当我问及他们的时候,回答都是:婚姻是件大事不敢太草率了, 所以选自己另一半的时候更多的是理智. 然而,好 ...
- c语言单身狗题目罩得住学长,看到就是赚到!心理学教授研究多年,只为谈不了恋爱的你...
近了近了,妹妹们的成团日终于近了! 为了将pick的妹妹送上梦寐以求的出道位,本青春制作人日夜不停咬定打投不放松! 一边听着<YES!OK!>为自己加油打劲,一边想象着明天九人团的团名舒缓 ...
- 程序员如何用gRPC谈一场恋爱
导语: 本文以幽默诙谐的方式,介绍gRPC的4种client-server服务模式的开发实践及应用场景 前言:为什么要写这篇文章? The best way to learn is to teach. ...
- 二十岁和三十岁的女生!脱单或者谈一场恋爱还是先脱穷?女孩子就应该好好奋斗
我第一次看到这问题,我非常想回答,可是我看了一下别人的回答和文章.感觉还不错! 其实这个问题男生也有的,就比如博主(阿八个人博客www.abboke.com)我也一样,我可以说没谈过恋爱,因为家里人说 ...
最新文章
- Gerapy分布式管理框架
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
- VS2005中GridView簡單應用
- Eigen--.block(i,j,p,q)
- DispatcherServlet服务调度
- Android 5.1 Gallery2 模块编译不过解决办法
- 【知了堂学习心得】浅谈c3p0连接池和dbutils工具类的使用
- 树中两个节点的最低公共祖先
- 魔百盒UNT403A UNT413A 卡刷精简固件-芯片S905L3
- php flash斗地主,flash斗地主
- uc/os-II的内存改进与实现TLSF算法的详解,移植实现(一)
- 英文论文PDF全文翻译途径整理
- 正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)
- 当cmd里安装不了Appium-Python-Client时,Requirement already satisfied: Appium-Python-Client in
- python实现连环阵
- 阿里一p7员工为了证明自己确实年入百万,晒出了他的工资
- CSS总结---持续更新中 2022.8.4
- ZJNU——1695(分栗子)
- 广工数据结构课设——校园导游咨询(C语言)
- 小爱同学控制灯 局域网
热门文章
- Flutter APNS device token not set before retrieving FCM Token for Sender ID
- 最近遇到使用Zing.DLL生成条码,但是打印出来不清晰的问题,解决代码记录一下,
- acm第一周学习总结
- Linux系统中一些目录和文件的详细解释(参照RHEL5.4)
- Microsoft Excel 教程「3」:如何在 Excel 中打印工作表?
- 小程序1rpx,边框不完整或线条太粗
- pathon基础练习
- 如何判断是否是ssd硬盘?win10查看固态硬盘的方法
- 摔手机 蓝桥 Python
- 基于vue3的移动端音乐播放器