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

Docker - ответ от демона: клиент новее сервера

После создания новой машины с Docker Machine я получаю следующую ошибку:

введите описание изображения здесь

$ docker ps
Error response from daemon: client is newer than server(client API version 1.21, server API version: 1.19)

Как я могу это исправить?

4b9b3361

Ответ 1

docker-machine upgrade <your-machine>

сделает трюк. Это может произойти, как и для меня, даже если вы не используете RC, и ваша машина была недавно создана. Это связано с проблемой кеша ISO. Ошибка прокомментирована в этот поток.

Если клиентом докера является 1.9.x, а на сервере работает докер 1.8.x, появляется сообщение об ошибке.

Ответ 2

Если кто-то получает эту ошибку, но не использует docker-machine, есть другой способ решить проблему, указав более старую версию API в переменной среды на стороне клиента:

export DOCKER_API_VERSION=<version>

например:

export DOCKER_API_VERSION=1.19

и повторите команду docker.

Ссылка.

Ответ 3

В дистрибутиве ubuntu это происходит после обновления apt, если докер запускается как служба. Клиент обновляется, но старая версия сервера все еще запущена.

В этом случае просто выполните:

sudo service docker restart

Ответ 4

Если вы обновите клиент докеры, вы не сможете использовать старые виртуальные машины докеров. На самом деле вы можете принудительно выполнить обновление с помощью docker-machine upgrade vm-name, но если вы работаете с другими дистрибутивами (кроме boot2docker) как хост-докер, например, coreos, atom, rancheros, он может выйти из строя.

Я использую Carina для управления более чем одной версией клиента докеров.

просто установите с помощью $ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh (установка linux и mac) и запустите dvm ls, чтобы просмотреть установленные версии, dvm install 1.9.0, чтобы установить версии и dvm use 1.8.1, чтобы изменить вашу версию клиента.

Очень легкий и мощный. =)

Внимание, для вашей безопасности всегда просматривайте скрипты, загруженные из Интернета, прежде чем запускать их.

Надеюсь, что это поможет

Ответ 5

По-видимому, эта ошибка связана с docker-machine "засыпанием". Вот волшебная команда, которая решает это для меня:

$ docker-machine restart default

Или замените default на имя вашего устройства. Результат:

$ docker-machine restart default
Restarting "default"...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

Как и было предложено, вам может потребоваться:

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://....."
export DOCKER_CERT_PATH=".../.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)

Итак, вы, наконец, запустите эту команду:

$ eval $(docker-machine env default)

Теперь он должен работать.

Ответ 6

Этот комментарий предназначен только для начинающих, у которых установлена ​​машина по умолчанию.

docker-machine upgrade default

Ответ 7

У меня была такая же проблема с 1.10.0-rc4, и оказалось, что boot2docker не был правильно обновлен при установке нового Docker Toolbox. Мне пришлось удалить boot2docker вручную:

sudo rm -rf /usr/local/share/boot2docker

Вы также можете удалить остальную часть панели инструментов:

sudo rm -rf /usr/local/bin/docker*
sudo rm -rf /Applications/Docker

И, наконец, установите Docker Toolbox нужной версии.

Обратитесь к официальному удалению script для в GitHub для OS X здесь.