这基本上是该问题的后续解决方案,但是现在由于OS X Docker不再需要Docker Toolbox(即不再需要VirtualBox),我完全迷失了如何从切换AUFS到devicemapper或其他方法。
AUFS
devicemapper
我在这里也面临的问题是缺少对硬件的支持,AUFS这在安装AndroidSDK时会出现问题,因此希望devicemapper对我有帮助。
那么,如何更改OS X中Docker的本机实现的存储驱动程序?
Docker for Mac运行的Alpine Linux VM不支持该devicemapper驱动程序,但可以运行该overlay2驱动程序。
overlay2
尚无用于管理此配置的UI, 而Docker for Mac UI已更新为包括“守护程序”部分,您可以在其中编辑docker.json配置文件。
docker.json
转到Docker图标>“首选项”>“守护程序”>“高级”,然后将设置storage-driver为overlay2
storage-driver
{ "storage-driver": "overlay2" }
您可以在中在Mac上修改Docker配置文件~/Library/Containers/com.docker.docker/Data/database。
~/Library/Containers/com.docker.docker/Data/database
该目录是git repo,通常为空白:
$ cd ~/Library/Containers/com.docker.docker/Data/database $ ls -al total 0 drwxr-xr-x 4 user staff 136 28 Sep 02:46 . drwxr-xr-x 20 user staff 680 28 Sep 02:54 .. drwxr-xr-x 11 user staff 374 28 Sep 02:58 .git
虽然git数据库中有文件
$ git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: com.docker.driver.amd64-linux/etc/docker/daemon.json deleted: com.docker.driver.amd64-linux/etc/hostname deleted: com.docker.driver.amd64-linux/etc/sysctl.conf ....
要从git检索以前的内容,请运行:
$ git reset --hard HEAD
编辑现在存在的docker daemon配置文件,以包括overlay2存储驱动程序。
$ vi com.docker.driver.amd64-linux/etc/docker/daemon.json
必须/var/lib/docker先删除VM上的Docker,然后才能使用新的存储驱动程序。这将 删除 您所有的容器,图像和卷!事先备份所需的任何内容。
/var/lib/docker
附加到VM的tty screen(brew install screen如果没有)
screen
brew install screen
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
使用登录root,没有密码
root
moby:~# /etc/init.d/docker stop moby:~# rm -rf /var/lib/docker/*
使用ctrl- 退出提示d
ctrl
d
使用ctrl- 退出屏幕会话,a然后d
a
现在,您可以将更改重新提交到Mac
$ git commit -m overlay com.docker.driver.amd64-linux/etc/docker/daemon.json
更改将由Docker在提交时自动获取,并且VM将重新启动。
现在,您有了一个与overlay2存储驱动程序一起运行的Docker for Mac VM 。如果那不能解决您的问题,则可以通过一些工作来弄清楚如何devicemapper在VM中获得支持。一旦弄清楚了,这些步骤都是相同的。
注意 升级到Mac的Docker可能会引起一些怪异。上一次升级时,我的所有容器/图像都从docker ps或消失了dockerimages。我不得不再次重置git存储库并重新启动Docker,以使配置更改恢复,然后所有数据恢复。
docker ps
dockerimages