前言
出于開源項(xiàng)目的需要,我準(zhǔn)備把之前在 Windows 下運(yùn)行的開源項(xiàng)目移植到 Mac 上跑得試下,但是之前 Mac M1 芯片并不能很好地支持 Docker,這不,發(fā)現(xiàn) Docker 也正式
支持 Mac 了,M1 看了 Docker 的芳容,竟悄悄愛上了 Docker。
一、官宣
1.1 官宣版
之前 Docker 只支持在 Intel 芯片的 X86 架構(gòu)上運(yùn)行,Docker 已經(jīng)正式支持蘋果 M1 芯片了,而 M1 芯片是 ARM 架構(gòu)的,所以說(shuō) Docker 真的是太強(qiáng)大了,短短幾個(gè)月就適配了蘋果最新的系統(tǒng)!
這不就是官宣 Docker 帥哥要追 M1 妹紙么?
2021-04-15 發(fā)布的正式版:Docker Desktop 3.3.1,而且可以直接下載。
官網(wǎng)地址:https://docs.docker.com/docker-for-mac/apple-silicon/
這個(gè) Desktop 包含很多功能:
-
Docker Engine
-
Docker CLI client
-
Docker Compose
-
Notary
-
Kubernetes
-
Credential Helper
另外在 M1 上運(yùn)行 Docker 還有些條件需要滿足。
1.2 要求
因?yàn)?M1 比較前衛(wèi),所以需要安裝 Rosetta 軟件來(lái)進(jìn)行兼容。
必須安裝 Rosetta ,因?yàn)槟承┒M(jìn)制文件仍是Darwin / AMD64。要從命令行手動(dòng)安裝Rosetta 2,請(qǐng)運(yùn)行以下命令:
softwareupdate?--install-rosetta
Docker 官方有望在將來(lái)的版本中修復(fù)此問(wèn)題。
1.3 磨合
Docker 和 M1 還有許多地方需要磨合:
-
并不是所有鏡像都可以用于 M1 的 ARM64 架構(gòu),比如 mysql 鏡像就不適合。但可以通過(guò)使用 mariadb 鏡像來(lái)解決此問(wèn)題。
我試了下,確實(shí)沒有合適的 mysql 鏡像。
-
由于QEMU有時(shí)無(wú)法運(yùn)行容器,因此在 Apple Silicon計(jì)算機(jī)上運(yùn)行基于Intel的容器可能會(huì)導(dǎo)致崩潰。我們建議您在Apple Silicon計(jì)算機(jī)上運(yùn)行 ARM64 ?容器。與基于Intel的容器相比,這些容器還更快并且使用的內(nèi)存更少。
-
ping
從容器內(nèi)部到 Internet 的連接無(wú)法正常工作。要測(cè)試網(wǎng)絡(luò),我們建議使用curl
或wget
。 -
當(dāng)TCP流半關(guān)閉時(shí),用戶有時(shí)可能會(huì)遇到數(shù)據(jù)丟失的情況。
二、手拉手
2.1 左手拉右手
之前在 Linux 環(huán)境安裝 Docker 是通過(guò)命令行安裝的,但是在 Mac 上有客戶端可以使用,確實(shí)方便很多。安裝 Mac 版的 Docker非常方便,下載完成后的文件名叫做 Docker.dmg。雙擊文件后,彈出如下界面,把 Docker.app 圖標(biāo)拖到右邊 Appliactions 就可以了,就像左手拉右手
。
Docker 帥哥成功牽手 M1。
安裝完成后,在應(yīng)用程序中找到 Docker,雙擊打開就可以了。
接著就可以看到 Docker 在菜單欄中有顯示。
2.2 啟動(dòng)容器
打開的界面,會(huì)提示沒有容器正在運(yùn)行,客戶端提示執(zhí)行以下命令啟動(dòng)一個(gè)新的容器。
docker?run?-d?-p?80:80?docker/getting-started
我們將命令拷貝到控制臺(tái)后運(yùn)行,如下圖所示:
?
然后我們來(lái)check 下容器是否創(chuàng)建和啟動(dòng)成功。通過(guò)以下命令來(lái)查看 docker 容器的運(yùn)行狀態(tài)。
docker?ps
?
我們同樣可以通過(guò) Docker 客戶端來(lái)查看容器狀態(tài):容器正在運(yùn)行中,對(duì)應(yīng)的端口號(hào)是 80。如下圖所示:
另外我們也可以看下有哪些鏡像已經(jīng)下載好了,如下圖所示,目前有一個(gè)鏡像:docker/getting-started。
2.3 Intel & Apple
我們打開活動(dòng)監(jiān)視器,可以看到打開的 docker 進(jìn)程既有 Apple 架構(gòu)的,也有 Intel 架構(gòu)的,比如桌面 UI 用的是 Intel 架構(gòu)的,但 Docker 核心應(yīng)用程序用的 Apple 架構(gòu),說(shuō)明雖然有部分用的 Intel 架構(gòu),但核心還是 Apple 架構(gòu),不影響使用。
再來(lái)看下內(nèi)存使用情況,12 個(gè)進(jìn)程,總共占用 430 M 內(nèi)存,說(shuō)明占用的內(nèi)存并不高,性能還是可以的。
三、暖男
Docker 客戶端還有一系列人性化的配置,優(yōu)質(zhì)暖男一枚。來(lái)看下有什么配置吧。
3.1 通用偏好設(shè)置
Docker 客戶端,有很多人性化的通用設(shè)置。如下圖所示:
-
自動(dòng)檢查更新:默認(rèn)情況下,Docker Desktop配置為自動(dòng)檢查較新版本。如果您作為組織的一員安裝了Docker Desktop,則可能無(wú)法自己更新 Docker Desktop。在這種情況下,請(qǐng)將您現(xiàn)有的組織升級(jí)為團(tuán)隊(duì)計(jì)劃,然后清除此復(fù)選框以禁用自動(dòng)檢查更新。
-
登錄時(shí)啟動(dòng) Docker Desktop:打開會(huì)話時(shí)自動(dòng)啟動(dòng)Docker Desktop。
-
在 Time Machine 備份中包括 VM:選擇此選項(xiàng)以備份 Docker Desktop 虛擬機(jī)。默認(rèn)情況下未勾選此選項(xiàng)。
-
使用 gRPC FUSE 進(jìn)行文件共享:清除此復(fù)選框可改用舊版 osxfs 文件共享。
-
發(fā)送使用情況統(tǒng)計(jì)信息:Docker Desktop發(fā)送診斷、崩潰報(bào)告和使用情況數(shù)據(jù)。此信息可幫助Docker 改善應(yīng)用程序并進(jìn)行故障排除。
-
顯示每周提示:顯示有關(guān)使用Docker的有用建議。
-
啟動(dòng)時(shí)打開 Docker Desktop 儀表板:?jiǎn)?dòng) Docker Desktop 時(shí)自動(dòng)打開儀表板。
3.2 資源高級(jí)配置
還有些關(guān)于資源的高級(jí)配置也非常強(qiáng)大,來(lái)瞧一瞧吧。
-
CPU:默認(rèn)情況下,Docker Desktop設(shè)置為使用主機(jī)上可用處理器數(shù)量的一半。要提高處理能力,請(qǐng)將其設(shè)置為更高的數(shù)字。
-
內(nèi)存:默認(rèn)情況下,Docker Desktop設(shè)置為使用
2
GB運(yùn)行時(shí)內(nèi)存,該內(nèi)存是從Mac上的總可用內(nèi)存分配的。要增加RAM,請(qǐng)將其設(shè)置為更大的數(shù)字,如果要減少它,請(qǐng)降低數(shù)字。 -
交換:根據(jù)需要配置交換文件的大小,默認(rèn)值為1 GB。
-
磁盤映像大小:指定磁盤映像的大小。
-
磁盤映像位置:指定Linux卷的容器和映像的存儲(chǔ)位置。
3.3 K8S
Docker Desktop 竟然直接支持 kubernets(K8S) ,太酷了吧!
Docker Desktop 包含一個(gè)可在 Mac 上運(yùn)行的獨(dú)立 Kubernetes 服務(wù)器,因此可以測(cè)試在Kubernetes上部署 Docker 的工作負(fù)載。要啟用Kubernetes支持并安裝作為Docker容器運(yùn)行的Kubernetes獨(dú)立實(shí)例,請(qǐng)選擇Enable Kubernetes。
還有很多非常有用的功能,這里就不一一介紹了,感興趣的可以到官網(wǎng)上查看哦~
Docker 對(duì)于 M1 來(lái)說(shuō),絕對(duì)是優(yōu)質(zhì)暖男一枚!實(shí)錘了!??
四、約會(huì)
說(shuō)了 Docker 的那么多優(yōu)點(diǎn),M1 終于愿意和 Docker 談戀愛了,他們第一個(gè)約會(huì)活動(dòng)
就是實(shí)戰(zhàn) Redis。
4.1 下載 Redis 鏡像
先讓 Docker 下載個(gè) Redis 鏡像試下:
sudo?docker?pull?redis
?
?我們可以通過(guò) Docker 客戶端來(lái)看下鏡像是否下載成功,如下圖所示,確實(shí)下載成功。另外也可以通過(guò)命令 docker ps 查看。
4.2 啟動(dòng) Redis
-
啟動(dòng) redis
docker?run?-d?-p?6379:6379?redis
?
4.3 連接redis
docker?exec?-it?<容器?id>?redis-cli
需要通過(guò) docker ps 找到 redis 容器 id,我的機(jī)器上運(yùn)行的 redis 容器 id 是 17c...,命令中可以簡(jiǎn)寫,只要能識(shí)別這個(gè)容器就可以。
連接成功后,會(huì)進(jìn)入到 redis 命令行。
4.4 測(cè)試 Redis
設(shè)置a=100,返回OK
set?a?100
獲取a的值,返回"100"
get?a
?
說(shuō)明 docker 在 M1 上 完美運(yùn)行 Redis。
另外我的開源項(xiàng)目中要用 Elasticsearch 和 Kibana,但是都沒有適配的鏡像,這就很難受了啊!
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-840098.html
看來(lái) Docker 和 M1 還有很長(zhǎng)的路要走,談戀愛磕磕碰碰
很正常,需要磨合
的還有很多,但悟空相信他們最終一定會(huì)走到一起,并過(guò)上幸福的日子~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-840098.html
到了這里,關(guān)于Mac M1 上 絲滑跑 Docker的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!