一尘不染

在OS X上更改Docker的存储驱动程序

docker

这基本上是该问题的后续解决方案,但是现在由于OS X Docker不再需要Docker
Toolbox(即不再需要VirtualBox),我完全迷失了如何从切换AUFSdevicemapper或其他方法。

我在这里也面临的问题是缺少对硬件的支持AUFS这在安装AndroidSDK时会出现问题,因此希望devicemapper对我有帮助。

那么,如何更改OS X中Docker的本机实现的存储驱动程序?


阅读 284

收藏
2020-06-17

共1个答案

一尘不染

Docker for Mac运行的Alpine Linux VM不支持该devicemapper驱动程序,但可以运行该overlay2驱动程序。

尚无用于管理此配置的UI, 而Docker for Mac UI已更新为包括“守护程序”部分,您可以在其中编辑docker.json配置文件。

转到Docker图标>“首选项”>“守护程序”>“高级”,然后将设置storage-driveroverlay2

{ "storage-driver": "overlay2" }

手动配置编辑

您可以在中在Mac上修改Docker配置文件~/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,然后才能使用新的存储驱动程序。这将 删除
您所有的容器,图像和卷!事先备份所需的任何内容。

附加到VM的tty screenbrew install screen如果没有)

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

使用登录root,没有密码

moby:~# /etc/init.d/docker stop
moby:~# rm -rf /var/lib/docker/*

使用ctrl- 退出提示d

使用ctrl- 退出屏幕会话,a然后d

现在,您可以将更改重新提交到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,以使配置更改恢复,然后所有数据恢复。

2020-06-17