Docker for Mac優(yōu)化踩坑記錄

Docker在非Linux環(huán)境下都是跑在虛擬機(jī)上的。
早期的Docker for Mac是跑在VirtualBox下,之后是基于蘋果的hyperkit來實(shí)現(xiàn)的。

但是,這兩種方式都是比較低效且占用過多的資源。
單一個(gè)docker hyperkit就占用內(nèi)存超過3GB。


Snipaste_2020-05-05_13-35-00.png

磁盤空間占用也非常之大。


Snipaste_2020-05-05_13-36-20.png

大名鼎鼎的Parallels desktop在mac上運(yùn)行起來算比較絲滑的了,那么能否將docker運(yùn)行在其之上呢?答案當(dāng)然是可以的,接下來將記錄整個(gè)步驟。

# 安裝docker
brew install docker

# 安裝docker-machine-parallels(會(huì)自動(dòng)安裝docker-machine),如果安裝失敗可嘗試使用二進(jìn)制安裝方式(見文章末尾)
brew install docker-machine-parallels

# 創(chuàng)建docker虛擬機(jī)(會(huì)拉取 boot2docker.iso 鏡像并在parallels創(chuàng)建default的虛擬機(jī))
docker-machine create --driver=parallels default

# 啟動(dòng)創(chuàng)建好的docker虛擬機(jī)
docker-machine start default

# 輸出相關(guān)環(huán)境變量
docker-machine env default

# 將上一步輸出的腳本在終端執(zhí)行一次。例如:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://10.211.55.9:2376"
export DOCKER_CERT_PATH="/Users/fan/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"

# 或
eval $(docker-machine env default)

至此,已經(jīng)可以愉快的把玩docker了,后續(xù)的步驟將簡單來跑個(gè)demo。

# 拉取alpine鏡像
docker pull alpine

# 運(yùn)行鏡像
docker run -p 1080:80 -it alpine:latest sh

# 安裝nginx
apk add nginx

# 運(yùn)行nginx
nginx

# 查看docker虛擬機(jī)default的ip
docker-machine ip default

# 訪問服務(wù)
http://ip:1081

Parallels 為我們提供了端口映射服務(wù)。
Parallels desktop --> 系統(tǒng)偏好 --> 網(wǎng)絡(luò)設(shè)置,將本地端口與docker的虛擬機(jī)端口作映射。
例如:把本地1081映射到虛擬機(jī)上的1081端口。

這時(shí)候就可以在你的Mac物理機(jī)上通過http://localhost:1081來訪問容器中運(yùn)行的nginx服務(wù)了。

docker-machine-parallels、docker-machine 二進(jìn)制安裝方法

# 下載 docker-machine-parallels 二進(jìn)制文件
curl -L https://github.com/Parallels/docker-machine-parallels/releases/download/v2.0.1/docker-machine-driver-parallels > /usr/local/bin/docker-machine-driver-parallels

# 為下載下來的文件賦予權(quán)限
chmod +x /usr/local/bin/docker-machine-driver-parallels

# 安裝 docker-machine 并賦予權(quán)限
curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
  chmod +x /usr/local/bin/docker-machine

相關(guān)資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容