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

时间:2017-01-05 21:33:35

标签: docker docker-machine

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

$ 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)为什么容器在远程主机上正常运行?

1 个答案:

答案 0 :(得分:1)

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