Подтвердить что ты не робот

Docker жалуется на недопустимый сертификат после обновления до версии 1.1.

После обновления до Docker v1.7.0 (а также boot2docker), я получаю следующую ошибку при запуске docker ps:

x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103

Это известная проблема с этой версией, и что я могу сделать, чтобы исправить это?

4b9b3361

Ответ 1

Это известная проблема, появившаяся в версии 1.7.0 boot2docker: https://github.com/boot2docker/boot2docker/issues/824

Обновление для boot2docker 1.7.1

Обновление boot2docker 1.7.1 устраняет эту проблему, как описано здесь.

Параметры для boot2docker 1.7.0

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

Вариант 1

Исправлено выполнение следующей последовательности, которая добавляет код для ожидания присутствия всех сетевых интерфейсов:

boot2docker ssh
sudo curl -o /var/lib/boot2docker/profile https://gist.githubusercontent.com/garthk/d5a17007c277aa5c76de/raw/3d09c77aae38b4f2809d504784965f5a16f2de4c/profile
sudo halt
boot2docker up

Источник (и более подробная информация о загружаемом коде): https://gist.github.com/garthk/d5a17007c277aa5c76de

Это устранило проблему для меня, хотя мне пришлось остановить boot2docker-vm через интерфейс VirtualBox, чтобы получить чистый старт.

Gist добавляет следующее в файл .profile в VM-загрузчика:

wait4eth1() {
        CNT=0
        until ip a show eth1 | grep -q UP
        do
                [ $((CNT++)) -gt 60 ] && break || sleep 1
        done
        sleep 1
}
wait4eth1

Эта функция ждет до 1 минуты, чтобы интерфейс eth1 появился.

Вариант 2

Другой вариант - сделать

boot2docker delete
boot2docker init
boot2docker up

Это уничтожит виртуальную машину boot2docker - вы можете потерять все выполненные вами настройки.

Ответ 2

Простое выполнение этой команды устраняет проблему для меня. Это было предложено сотрудником Docker через GitHub.

boot2docker ssh sudo /etc/init.d/docker restart

К сожалению, его нужно запускать каждый раз при запуске boot2docker.

Ответ 3

Я нашел следующую "легкую" альтернативу работе. Используйте псевдоним оболочки:

alias docker="docker --tlsverify=false"

Благодаря Mark Duncan.