Docker deamon config path under mac os

后端 未结 4 849
萌比男神i
萌比男神i 2020-12-28 15:33

I am using docker in Version 1.12.0 (build 10871) on Mac OS (El Capitan 10.11.4) and I want to provide a config file for the docker daemon.

Under Ubuntu you place th

相关标签:
4条回答
  • 2020-12-28 15:52

    My docker versin is as follow:

    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
    

    On my OSX 10.13.2, the path of daemon.json is /var/config/docker/daemon.json in the VM. You can use this command to attach a screen session to VM's tty:

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

    In the VM, you can grep dockerd process to get config file path:

    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
    
    0 讨论(0)
  • 2020-12-28 15:59

    I am using Docker for Mac 1.13.0 on MacOS 10.12 and the daemon settings can be accessed via the Docker app (Preferences -> Daemon -> Advanced).

    But if you change this to something wrong, you will render your installation unusable (the daemon will no longer start-up). This happened to me.

    I found out that the settings are stored in a Git repository in ~/Library/Containers/com.docker.docker/Data/database where I had to issue a git reset --hard HEAD before I could change anything. After that the daemon settings are available in ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    Edit, commit and restart the Docker app … et voilà … the daemon starts again.

    0 讨论(0)
  • 2020-12-28 16:10

    On recent versions of Docker Desktop for Mac, the files are in ~/.docker.

    ~/.docker/daemon.json
    

    Custom (ie. self-signed) certificates can be copied into

    ~/.docker/certs.d/{MyRegistry:port}/client.crt
    
    0 讨论(0)
  • 2020-12-28 16:13

    Docker EE/CE 17+

    Docker for Mac/Windows has added a config editor to the tray icon UI to allow editing of Dockers daemon.json file that will be persisted in the VM.

    To access it go to the Docker Icon > Preferences > Daemon > Advanced

    Original Answer

    The Docker for Mac VM is based on Alpine Linux. The init system is based on OpenRC.

    You can attach a screen session to the VM's tty (terminal) and poke around

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

    The docker daemon config is in the usual spot

    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
    

    The /etc/init.d/docker script that manages the startup does not seem very configurable, apart from editing the script.

    /host_docker_app in the VM is a mount of the data in ~/Library/Containers/com.docker.docker/Data/ from OSX. This seems like the most likely place to persist custom config but it doesn't look like there is any interface to source/load config or anything at startup from there.

    It looks like changes outside of /var or /host_docker_app will not persist over reboots. There was a mechanism to persist some startup config in the old boot2docker VM image but I haven't found anything like it for the new VM.

    0 讨论(0)
提交回复
热议问题