Docker 无法加载配置文件,但容器工作正常

Docker can't load config file, but container works fine

我正在使用 docker-machine 和 generic driver 在现有的远程主机上部署容器。但是当我切换到远程主机并尝试 运行 一个容器时,会发生这种情况:

$ docker-machine create --driver generic --generic-ip-address=$REMOTEIP \
--generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user $REMOTEUSER vm
[works fine]

$ eval $(docker-machine env vm) #switch to remote host
[works fine]

$ docker run -it busybox sh
WARNING: Error loading config file:/home/user/.docker/config.json - open /home/user/.docker/config.json: permission denied
[Even with the warning, runs fine]

容器 运行 无论如何都很好,但我想解决该警告消息。

鉴于 user 不存在于远程主机中,我猜测该文件不存在。但是..

1) 为什么引擎首先搜索它?它不应该搜索 $REMOTEUSER 的 config.json 而不是那个吗?

2) 以及为什么容器 运行 无论如何都在远程主机上正常运行?

Docker 不是在远程主机中而是在本地主机中搜索该文件。事实证明该文件存在并且归 root 所有。

$ ls -lsa ~/.docker/config.json  4 -rw------- 1 root root \
95 dic 29 15:29 /home/user/.docker/config.json

这就是为什么它说 permission denied

一个简单的 chown 解决了这个问题:

$ sudo chown user:user /home/user/.docker -R