it-swarm.com.ru

docker-compose up приводит к ошибке "клиент и сервер не имеют одинаковую версию (клиент: 1.14, сервер: 1.12)", но клиент и сервер имеют одинаковую версию

docker version печатает:

Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a

docker-compose --version печатает:

docker-compose 1.2.0

Я установил Docker с помощью apt-get install docker.io и docker-compose с помощью 

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Я использую Ubuntu 14.04 x64. 

37
Donovan

Извлечь переменную среды COMPOSE_API_VERSION .

Я получил ERROR: client and server don't have same version (client : 1.19, server: 1.18), затем я сделал export COMPOSE_API_VERSION=1.18 и проблема решена!

47
hba

Эта проблема связана с тем, что версия docker API, используемая docker-compose, выше, чем версия, которую слушает демон docker.

Самый простой способ исправить это использовать старую версию docker-compose.

Вот мой пример, но с другим несоответствием версий:

$ docker-compose up

client and server don't have same version (client : 1.18, server: 1.17)

Чтобы это исправить, мне пришлось установить более низкую версию docker-compose (версия 1.2 вместо последней версии 1.3), используя следующую команду

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose``

chmod +x /usr/local/bin/docker-compose`

Вы можете найти другую версию docker-compose по адресу https://github.com/docker/compose/releases

В зависимости от версии вашего сервера, вам нужно попробовать другую версию docker-композиции с более низкой версией, пока она не заработает.

16
Srini Koganti

Я думаю, вам просто нужно использовать более новую версию Docker. Предположительно, клиентская версия 1.14 используется внутри Compose.

Удалите версию apt-get и следуйте инструкциям на веб-сайте Docker для установки Docker:

 wget -qO- https://get.docker.com/ | sh
12
Adrian Mouat

вы можете понизить версию docker-compose, если вы установили docker-compose:

pip install docker-compose

вы можете сначала удалить его:

pip uninstall docker-compose

затем вы можете запустить:

pip install docker-compose==1.3.0

если вы создаете docker, по-прежнему показываете подобную информацию, вы можете удалить ее (с помощью pip uninstall docker-compose) и установить более низкую версию docker-compose, например:

pip install docker-compose==1.2.0

вы можете пойти по кругу, если по-прежнему показывать неверную информацию.

pS: подробный номер версии можно найти в https://github.com/docker/compose/releases

3
dongzhuoyao

Попробуйте перезапустить службу Docker после обновления Docker (Sudo service docker restart).

У меня была очень похожая проблема, я обновил Docker и продолжал работать с тем же сообщением об ошибке, пока я не перезапустил службу. (См. https://serverfault.com/a/700707/295500 .)

2
gonzalo-bulnes

Поскольку docker-compose 1.4 позволяет устанавливать версию API клиента, вам не нужно понижать версию клиента или обновлять сервер. 

Вам не нужно также указывать конкретную версию API, вы можете установить переменную среды COMPOSE_API_VERSION=auto, чтобы она автоматически определяла версию клиента.

2
L. G.

Я пробовал много решений, но когда я использовал Sudo apt-get upgrade docker-engine, я вижу сообщение, что установил докер с другим именем, как docker-ce. После того, как я исправил с Sudo apt-get upgrade docker-ce.

2
Anton

Я обнаружил, что удаление версии, установленной с помощью apt-get и загрузка непосредственно из последней версии на их странице загрузки через командную строку, похоже, работает wget ..

1
Jason Graham

У меня была такая же проблема на моем Mac - несколько месяцев назад я установил docker, boot2docker и docker-compose (ранее fig) через brew . Поработав некоторое время с докером, я почему-то оставил его как есть. Теперь вступают в игру новые docker-toolbox и docker-machine , и я "просто" хотел использовать предварительно настроенный файл Docker и сказать "вверх". Я получил ошибку выше.

Я перепробовал все, что нашел в сети - также вариант с понижением рейтинга (который мне не подходил). Наконец-то все заработало: просто установить новый docker-toolbox via homebrew cask и обновить мой docker-vm с помощью следующих команд:

docker-machine upgrade docker-dev

Где "docker-dev" - это ваше имя-docker-vm в Virtualbox (запустите его, чтобы увидеть правильное имя).

Теперь docker снова работает нормально, а команда docker version выводит вывод обычной установки.

0
jonashackt