百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

架构大佬硬核解析 M1 上如何使用 Docker

liuian 2024-12-13 14:56 25 浏览

推荐学习:

太牛了!2021年最新最全Java后端学习路线,我建议你先收藏在观看

前言

出于开源项目的需要,我准备把之前在 Windows 下运行的开源项目移植到 Mac 上跑得试下,但是之前 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式支持 Mac 了,M1 看了 Docker 的芳容,竟悄悄爱上了 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 还有些条件需要满足。

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 的连接无法正常工作。要测试网络,我们建议使用 curlwget
  • 当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

2.3 Intel & Apple

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

  • 自动检查更新:默认情况下,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设置为使用 2GB运行时内存,该内存是从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 来说,绝对是优质暖男一枚!实锤了!

四、约会

说了 Docker 的那么多优点,M1 终于愿意和 Docker 谈恋爱了,他们第一个约会活动就是实战 Redis

4.1 下载 Redis 镜像

先让 Docker 下载个 Redis 镜像试下:

sudo docker pull redis

我们可以通过 Docker 客户端来看下镜像是否下载成功,如下图所示,确实下载成功。另外也可以通过命令 docker ps 查看。

4.2 启动 Redis

  • 启动 redis


说明 docker 在 M1 上 完美运行 Redis。

另外我的开源项目中要用 Elasticsearch 和 Kibana,但是都没有适配的镜像,这就很难受了啊

看来 Docker 和 M1 还有很长的路要走,谈恋爱磕磕碰碰很正常,需要磨合的还有很多,但悟空相信他们最终一定会走到一起,并过上幸福的日子

原文:https://my.oschina.net/u/4499317/blog/5025611

如果本文对你有帮助的话,请关注+转发+评论支持一下,谢谢!

对于 M1 和 Docker 的爱情你们怎么看?评论区见~

相关推荐

RazorSQL Mac版(SQL数据库查询工具)

RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...

史上最强!开源数据库管理工具DBeaver 24.2发布

DBeaverCommunity是一个免费的跨平台数据库工具,面向开发人员、数据库管理员、分析师和所有使用数据的人员。它支持所有流行的SQL数据库,如MySQL、MariaDB、PostgreSQL...

10个优秀的MySQL管理工具,都是大佬们的珍藏

Mysql开源、体积小、速度快、成本低、安全性高,目前在全球中小型网站中被广泛应用。今天给大家介绍10个优秀的MySQL管理工具,都是大佬们的珍藏,对你有用的话,可以收藏转发。1、Induction...

Mac电脑如何安装向量数据库Milvus

Milvus是一个高性能、高度可扩展的矢量数据库,可在从笔记本电脑到大规模分布式系统的各种环境中高效运行。Milvus提供强大的数据建模功能,使您能够将非结构化或多模态数据组织成结构化集合。Mil...

干掉 PowerDesigner!这款国人开源的数据库设计工具真香

当我们在项目开发初期时,往往需要设计大量的表,此时使用数据库设计工具就会比较高效!今天给大家推荐一款国人开源的数据库设计工具chiner,界面漂亮,功能强大,希望对大家有所帮助!聊聊PowerDesi...

数据库管理工具推荐!SQL Studio:免费、高效,歪...

随着国际环境的变化,越来越多的企业基于供应链安全的需求。信息技术的飞速发展,数据库管理工具的需求也越来越迫切。然而,在众多软件中,要找到一款得心应手的数据库管理工具并不容易。今天,我向大家推荐一款功能...

Mac密码安全管理工具----Enpass(mac密码管理在哪里)

Enpassmac版是一款适用于macOS用户的密码安全管理工具,使用Enpass,你无需再为记住太多的密码和其他重要凭据而头疼了。Enpass把你的密码存放在一个安全的地方,然后通过一个主密码随时...

超实用的14款MySQL数据库管理工具

MySQL是当前流行的数据库引擎之一,具有成本低、速度快、体积小且开放源代码的优点。今天就给大家分享14款MySQL数据库管理工具。1.MySQLDumper这款软件的应用,有效解决使用PHP进行大数...

神器收藏:macOS最强工具清单,16.6k+星 awesome-macOS

神器收藏:macOS最强工具清单,16.6k+星标必看引言在macOS生态中,有一个备受瞩目的神仓库,汇集了最全面、最实用的macOS应用和工具清单。这个项目在GitHub上已获得超过16.6k的...

JetBrains DataGrip Mac中文破解版V2025.1下载安装教程

DataGripforMac是由JetBrains开发的数据库集成开发环境(IDE),专为数据库管理员和开发人员设计。它支持多种数据库(如MySQL、PostgreSQL、Oracle、SQ...

GIS坐标参考系统:EPSG、WKT和PROJ

在之前的教程中,我们介绍了什么是坐标参考系统(CRS)、坐标参考系统的组成部分以及投影坐标参考系统和地理坐标参考系统之间的一般差异。在这个教程中,我们将介绍CRS信息的不同存储方式。推荐:用...

【地理信息可视化】basemap(cartopy)+geopandas显示地图-03

importwarningswarnings.filterwarnings('ignore')importosimportnumpyasnpfromscipy....

字符识别之PaddleOcr介绍、安装与应用

paddleocr介绍paddleocr是一款轻量型字符识别工具库,支持多语言识别,支持pip安装与自定义训练。详细信息如下表所示。名称许可证当前版本下载地址(github地址)支持语言运行方式pi...

111.Python——基于pipenv打包PaddlePaddle的GUI项目

飞桨PaddlePaddle是百度的深度学习框架,用来做一些项目还是非常不错。但是打包就是一件非常麻烦的过程。在文中有讲过打包问题。29.Python程序打包成可执行文件——常见疑难问题解决办法。本文...

Shamos算法:一种在平面上找到最远点的方法

旋转卡尺算法简介Shamos算法,也叫旋转卡尺(Rotatingcalipers)算法,是一种用于解决计算几何问题的优化算法。它可以用来解决许多几何问题,包括计算点集的宽度或直径。算法的名称来源于其...