1. docker 在 macOS 中的架構 2. 在macOS系統中,docker pull 下來的鏡像存儲在哪裏?

docker 在 macOS 中的架構:

在macOS中,docker的實現跟在其它Linux系統中略有不一樣,在其它Linux系統中,操做系統自己就是docker容器的宿主機,docker鏡像都是直接存儲在宿主機自己的文件系統中,好比咱們經過docker info命令能夠看到docker的根目錄是:html

$ docker info|grep "Docker Root Dir"
Docker Root Dir: /var/lib/docker

可是在macOS下,咱們直接查看這個目錄,實際上是根本不存在的。linux

$ ls /var/lib/docker
ls: /var/lib/docker: No such file or directory

Docker宿主機是誰

那麼這個目錄到底在哪裏?其實是在一個QEMU虛擬機中,當咱們在macOS中安裝完docker並啓動,就是啓動了一個虛擬機,這個虛擬機的整個內容所有都在一個文件裏,能夠在docker程序屬性界面中看到這個文件的路徑,好比在個人機器上,路徑就是(<YourUserName>替換爲你的mac電腦的用戶名)/Users/<YourUserName>/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2,該文件一般比較大,特別是安裝了多個docker鏡像以後,會輕易佔用到數十GB的空間。
那麼,咱們是否能夠登陸這個虛擬機來確認這點呢?使用macOS自帶的screen命令能夠登陸該臺虛擬機。以下,能夠看到這是一個擁有很是新的Linux 4.9.38版本內核的虛擬機,在這個虛擬機中才有/var/lib/docker目錄,只有2顆CPU,總共有2GB內存。docker

$ screen /Users/Kamus/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

/ # uname -a
Linux moby 4.9.38-moby #1 SMP Wed Jul 26 10:02:46 UTC 2017 x86_64 Linux
/ # hostname
moby

/ # ls /var/lib/docker
aufs        containers  network     swarm       tmp-old     volumes
builder     image       plugins     tmp         trust

/ # cat /proc/cpuinfo|grep "processor"
processor       : 0
processor       : 1
/ # cat /proc/meminfo |grep "MemTotal"
MemTotal:        2047040 kB

在screen的窗口按組合鍵control+a d(先按control+a,再按d)能夠暫時dettach出這個screen,screen -r能夠從新打開窗口。更多的screen命令,能夠自行man screen來查看。
因此如今咱們能夠明確一個概念,macOS自己並非之後將運行的docker容器的宿主機,而這個Linux虛擬機纔是真正的宿主機。這臺機器的主機名是moby,這正是docker項目社區版的名稱。macos

Docker宿主機與macOS操做系統的目錄共享

因爲以下共享文件夾功能的存在,在這個虛擬機中能夠訪問並更新macOS操做系統本地的目錄。
咱們仍是在screen中看一下這些共享目錄的狀況。架構

/ # df -h|grep osxfs
osxfs                   465.1G    324.1G    140.7G  70% /private
osxfs                   465.1G    324.1G    140.7G  70% /tmp
osxfs                   465.1G    324.1G    140.7G  70% /Volumes
osxfs                   465.1G    324.1G    140.7G  70% /Users
/ # cd /Users
/Users # ls
Guest   Kamus   Shared

能夠看到,確實macOS操做系統中的目錄在虛擬機中是能夠直接訪問的,並且更方便的地方是,在虛擬機中自動掛載的目錄路徑跟macOS中的路徑是徹底相同的,好比個人我的主目錄不管是在macOS中仍是在這個虛擬機中,都是/Users/Kamus。ui

在macOS系統中,docker pull 下來的鏡像存儲在哪裏?

綜上所述:
存儲在文件Docker.qcow2 中,該文件在macOS系統中位置:
/Users/<YourUserName>/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2操作系統

相關文章
相關標籤/搜索