Docker mac os 下的守护程序配置路径

Docker deamon config path under mac os

我在 Mac OS (El Capitan 10.11.4) 上使用版本 1.12.0(内部版本 10871)中的 docker,我想为docker 守护进程。

在 Ubuntu 下,您将配置放在 /etc/default/docker 下(参见 docs)。不幸的是,我不知道将配置放在 Mac OS

中的什么位置

有什么想法吗?

Docker 19+

现在可以在 ~/.docker/daemon.json 中使用配置文件(参见

Docker EE/CE 17+

Docker for Mac/Windows 已将配置编辑器添加到托盘图标 UI 以允许编辑 Dockers daemon.json 将被保留的文件在虚拟机中。

要访问它,请转到 Docker 图标 > 首选项 > 守护程序 > 高级

原答案

Mac VM 的 Docker 基于 Alpine Linux. The init system is based on OpenRC

您可以将屏幕会话附加到 VM 的 tty(终端)并四处查看

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

docker 守护程序配置在通常位置

moby:/etc/docker# ls -l /etc/docker/
total 8
-rw-r--r--    1 root     root            38 Aug  5 11:26 daemon.json
-rw-------    1 root     root           244 Aug  5 11:26 key.json

除了编辑脚本之外,管理启动的 /etc/init.d/docker 脚本似乎不太可配置。

VM中的

/host_docker_app是OSX中~/Library/Containers/com.docker.docker/Data/中数据的挂载。这似乎是最有可能保留自定义配置的地方,但看起来没有 source/load 配置的任何接口或从那里启动的任何东西。

看起来 /var/host_docker_app 之外的更改不会在重新启动后持续存在。有一种机制可以在旧的 bo​​ot2docker VM 映像中保留一些启动配置,但我还没有为新的 VM 找到类似的东西。

我在 MacOS 10.12 上为 Mac 1.13.0 使用 Docker 并且可以通过 Docker 应用访问守护程序设置(首选项 -> 守护程序 -> 高级)。

但是如果您将其更改为错误的内容,您将导致您的安装无法使用(守护进程将不再启动)。这件事发生在我身上。

我发现设置存储在 ~/Library/Containers/com.docker.docker/Data/database 的 Git 存储库中,我必须在其中发出 git reset --hard HEAD 才能更改任何内容。 之后守护程序设置在 ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

中可用

编辑、提交并重新启动 Docker 应用程序……等等……守护进程再次启动。

我的docker版本如下:

Client:
 Version:   17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:03:51 2017
 OS/Arch:   darwin/amd64

Server:
 Engine:
  Version:  17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:    Wed Dec 27 20:12:29 2017
  OS/Arch:  linux/amd64
  Experimental: true

在我的OSX 10.13.2 上,daemon.json 的路径是VM 中的/var/config/docker/daemon.json。您可以使用此命令将屏幕会话附加到 VM 的 tty:

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

在虚拟机中,可以grep dockerd进程获取配置文件路径:

ps aux | grep dockerd

/usr/local/bin/dockerd --config-file /var/config/docker/daemon.json --swarm-default-advertise-addr=eth0 --userland-proxy-path /usr/bin/vpnkit-expose-port --storage-driver overlay2

在 Mac 的 Docker 桌面的最新版本中,文件位于 ~/.docker.

~/.docker/daemon.json

可以将自定义(即自签名)证书复制到

~/.docker/certs.d/{MyRegistry:port}/client.crt