我正在使用带有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)为什么容器在远程主机上正常运行?
答案 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