Mac M1 上 丝滑跑 Docker

这篇具有很好参考价值的文章主要介绍了Mac M1 上 丝滑跑 Docker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mac m1 docker,macos,java,程序人生,学习

前言

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

mac m1 docker,macos,java,程序人生,学习

一、官宣

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/

mac m1 docker,macos,java,程序人生,学习

这个 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 镜像。

mac m1 docker,macos,java,程序人生,学习

  • 由于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。

mac m1 docker,macos,java,程序人生,学习

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

mac m1 docker,macos,java,程序人生,学习

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

mac m1 docker,macos,java,程序人生,学习

2.2 启动容器

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

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

mac m1 docker,macos,java,程序人生,学习我们将命令拷贝到控制台后运行,如下图所示:

mac m1 docker,macos,java,程序人生,学习 

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

docker ps

mac m1 docker,macos,java,程序人生,学习 

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

mac m1 docker,macos,java,程序人生,学习

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

mac m1 docker,macos,java,程序人生,学习

2.3 Intel & Apple

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

mac m1 docker,macos,java,程序人生,学习

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

mac m1 docker,macos,java,程序人生,学习

三、暖男

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

3.1 通用偏好设置

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

mac m1 docker,macos,java,程序人生,学习

  • 自动检查更新:默认情况下,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 资源高级配置

还有些关于资源的高级配置也非常强大,来瞧一瞧吧。

mac m1 docker,macos,java,程序人生,学习

  • CPU:默认情况下,Docker Desktop设置为使用主机上可用处理器数量的一半。要提高处理能力,请将其设置为更高的数字。

  • 内存:默认情况下,Docker Desktop设置为使用2GB运行时内存,该内存是从Mac上的总可用内存分配的。要增加RAM,请将其设置为更大的数字,如果要减少它,请降低数字。

  • 交换:根据需要配置交换文件的大小,默认值为1 GB。

  • 磁盘映像大小:指定磁盘映像的大小

  • 磁盘映像位置:指定Linux卷的容器和映像的存储位置。

3.3 K8S

Docker Desktop 竟然直接支持 kubernets(K8S) ,太酷了吧!

mac m1 docker,macos,java,程序人生,学习

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

 mac m1 docker,macos,java,程序人生,学习

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

mac m1 docker,macos,java,程序人生,学习

4.2 启动 Redis

  • 启动 redis

docker run -d -p 6379:6379 redis

mac m1 docker,macos,java,程序人生,学习 

4.3 连接redis

docker exec -it <容器 id> redis-cli

需要通过 docker ps 找到 redis 容器 id,我的机器上运行的 redis 容器 id 是 17c...,命令中可以简写,只要能识别这个容器就可以。

mac m1 docker,macos,java,程序人生,学习

连接成功后,会进入到 redis 命令行。

4.4 测试 Redis

设置a=100,返回OK

set a 100

获取a的值,返回"100"

get a

mac m1 docker,macos,java,程序人生,学习 

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

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

mac m1 docker,macos,java,程序人生,学习

看来 Docker 和 M1 还有很长的路要走,谈恋爱磕磕碰碰很正常,需要磨合的还有很多,但悟空相信他们最终一定会走到一起,并过上幸福的日子~文章来源地址https://www.toymoban.com/news/detail-840098.html

到了这里,关于Mac M1 上 丝滑跑 Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)

    升级homebrew,命令如下: 通过命令 brew install redis 安装Redis,异常如下: 参考博文MAC 升级后brew报错后,运行命令 brew update-reset ,结果如下: 查看homebrew版本( brew --version ),结果为: 最终解决 上述 brew update-reset 升级命令即为该问题的解决办法。homebrew升级完成后,重新运行

    2024年02月07日
    浏览(49)
  • mac m1 docker 安装kafka和zookeeper

    获取本地ip地址  ifconfig en0   192.168.0.105.   下面的ip都会使用到 1、拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 2、启动容器 启动 zookeeper docker run -d --name zookeeper -p 2181:2181 映射 3、 启动 kafka 注意,kafka 依赖 zookeeper,启动 kafka 前需要先启动 zookeeper。 这边端口

    2024年02月10日
    浏览(34)
  • 记录MacOS M1芯片(ARM64架构)使用docker-compose方式部署Kafka

    amd架构的镜像非常好找,但由于博主是arm64架构的机器,所以一些开发环境非常的难找,所以在这里记录一下arm64环境部署Kafka。 准备 docker-compose.yml 文件: 博主的虚拟机IP是192.168.153.131,注意替换你的服务器IP。 这个文件部署了zookeeper、kakfa以及kafkaUI 在docker-compose.yml目录下,

    2024年02月15日
    浏览(46)
  • M1 mac 直接安装x86 centos Docker

    安装M1 DockerDesktop https://www.docker.com/products/docker-desktop/ 打开设置DockerEngine 将下列插入进去 拉取CentOS系统 创建CentOS(x86)容器 在我的 M1 Mac 上,我可以从 Docker Hub 运行 Ubuntu 映像的 arm64 和 amd64 版本。uname 提供的机器硬件名称证明了这一点。 因为Docker默认创建的是arm架构的Ce

    2024年02月13日
    浏览(35)
  • Mac M系列芯片(M1/M2)安装Docker

    通过Homebrew安装 安装完成后,打开Docker会提示CPU架构不匹配,无法正常启动Docker 在Docker官网下载M芯片适用的.dmg安装包  安装完成后即可正常启动 配置国内镜像源 点击菜单栏的Docker图标,打开Settings... Settings...界面如下,切换到Docker Engine,增加镜像源配置(注意JSON格式),

    2024年02月16日
    浏览(38)
  • 基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

    系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave 连接不上 master 的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创建三个空的文件夹 conf、data、log 即可 部署mysql_master(主) 运行master容器 不加 -

    2024年02月10日
    浏览(32)
  • MAC M1上docker rocketmq简单环境搭建和代码

    工作了这么多年,rocketmq还没有用过,由于现在的工作中涉及到了,周六吃完午饭就开始搞,结果到现在3点钟才把环境弄好,测试代码搞起。 整个流程分成两步 安装简单的rocket环境 起springboot项目测试 参考文章: https://blog.csdn.net/baidu_33256174/article/details/129599300 1. 制作rocket

    2024年02月15日
    浏览(29)
  • Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard

    最近本地启动以前docker安装的rocketmq发现报错了,因为是从老mac迁移过来的,发现支持的芯片还是amd的,于是重新在docker下安装rocketmq,并记录下步骤,方便大家后续参考。 1、先下载项目源码 2、在官方项目rocketmq-docker中已经说明了docker安装rocketmq的步骤,因此我们只需要根据

    2024年04月29日
    浏览(41)
  • M1芯片Mac安装brew和brew常用命令(附:安装docker)

    mac终端安装brew: 如果上面这条命令出现问题则需要配置环境变量: vim /etc/profile 通过上面命令编辑添加两条环境变量 需要添加的原因是因为m1芯片的mac电脑上的brew安装包位置不是在以前的/usr/local而是/opt/homebrew。改完之后在安装上面那个安装命令就可以啦。 brew常用命令 1、

    2024年02月08日
    浏览(54)
  • Mac M1运行、连接 Docker MongoDB7。导出、恢复数据库

    MongoDB,版本5、6.02、7.02适用 记录两种使用MongoDB的方法,本地安装包和docker 本地安装包方法:Mac M1安装MongoDB6、后台运行 可以在创建容器的时候指定root用户名密码(加上参数MONGO_INITDB_ROOT_USERNAME、MONGO_INITDB_ROOT_PASSWORD) 也可以在容器运行后,进入容器连接数据库使用mongoshell创建

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包