2017-01-05 8 views
0

Я использую докер-машину с generic driver для развертывания контейнеров на существующем удаленном хосте. Но при переходе на удаленный хост и попробуйте запустить контейнер, это происходит:Docker не может загрузить файл конфигурации, но контейнер отлично работает

$ 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) почему двигатель ищет его в первую очередь? не должен ли он искать config.json из $REMOTEUSER вместо этого?

2) и почему контейнер правильно работает на удаленном хосте в любом случае?

ответ

0

Docker не ищет этот файл на удаленном хосте, но на локальном хосте. Оказывается, что файл существует, и он принадлежит root.

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

Вот почему он говорит permission denied.

Простой Чаун исправляет проблему:

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