当前位置: 首页 > 面试题库 >

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

花博厚
2023-03-14
问题内容

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

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

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


问题答案:

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 daemonhtml" target="_blank">配置文件,以包括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,以使配置更改恢复,然后所有数据恢复。



 类似资料:
  • spark-defaults.conf中没有任何内容,以编程方式初始化spark上下文的代码是: 在所有这些之后,Spark UI的Environment选项卡的Spark.driver.maxResultSize为10G,Spark.driver.memory为20G,但是驱动程序的存储内存的executors选项卡显示为0.0B/4.3GB。 (请注意:我以前的Spark.Driver.Mem

  • 我需要修改OSX中的docker守护进程参数。 在没有证书情况下拉动私有存储库时出错。

  • 问题内容: 我正在寻找用于支持存储过程的nodejs的mySQL驱动程序。我一直在使用的http://nodejsdb.org/db- mysql/ 给出了错误 PROCEDURE无法在给定的上下文中返回结果集 问题答案: 它在nodejs-mysql-native中工作 存储过程: node.js脚本: 输出:

  • 问题内容: 我想在sql查询中更改表的动态名称。例如,我有下一个存储过程: 我需要在运行时更改 tableName ,我可以这样做吗?谢谢。 问题答案: 您必须使用动态SQL来准备和执行SQL字符串,以实现您所描述的内容。 在准备之前,必须将动态表名称(或列名称或SQL关键字等)内插到SQL字符串中。您不能将查询参数用于这些动态元素。 当您将表名称插入到SQL查询中时,请小心避免SQL注入漏洞。例

  • 我在命令终端上输入了以下命令,以便在Macbook Pro的XAMPP上与PHP一起使用“MongoClient”: brew安装wget brew安装autoconf sudo/Applications/XAMPP/xamppfiles/bin/pecl安装mongo 添加了扩展名=mongo。php也是如此。ini/Applications/XAMPP/xamppfiles/etc 重新启动A

  • 问题内容: 我在以下代码中: 我想打印用户代理HTTP标头,并可能对其进行更改。可能吗? 问题答案: Selenium中无法读取请求或响应头。您可以通过指示浏览器通过记录此类信息的代理进行连接来实现。 在Firefox中设置用户代理 更改Firefox用户代理的通常方法是在Firefox配置文件中设置变量。请注意,这与硒无关。 您可以指示Selenium使用与默认配置文件不同的配置文件,如下所示: