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操作系统

相关文章
相关标签/搜索