Оскільки я щойно оновив Docker до 1.1.0, я отримую:
Відповідь помилки від демона: клієнт і сервер не мають однакової версії (клієнт: 1.13, сервер: 1.12)
Чи знаєте ви, як це виправити?
Я повернувся до 1.0.1 і все знову працює.
Оскільки я щойно оновив Docker до 1.1.0, я отримую:
Відповідь помилки від демона: клієнт і сервер не мають однакової версії (клієнт: 1.13, сервер: 1.12)
Чи знаєте ви, як це виправити?
Я повернувся до 1.0.1 і все знову працює.
boot2docker
проблема (для подальшого використання).
Відповіді:
Схоже, вам потрібно оновити віртуальну машину після встановлення boot2docker:
якщо ви оновлюєтеся з boot2docker 0.12 або пізнішої версії, ви можете оновити свою існуючу віртуальну машину (після оновлення за допомогою інсталятора), використовуючи boot2docker stop && boot2docker download && boot2docker up - і ви не втратите наявні дані.
( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0 )
An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json?all=1: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
: /
boot2docker delete
Тоді я побіг , boot2docker init
і це почало працювати.
Це може статися, якщо ви оновили Docker, але послугу не перезапустили. Потім ви спробуєте підключитися до демона Docker за допомогою оновленого клієнта, тоді як демон (який вже працював до оновлення) все ще запускає стару версію.
Щоб виправити це, перезапустіть службу:
inys sysV:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
systemd
це рекомендується робити systemctl daemon-reload
доsystemctl restart docker
Якщо ви використовуєте docker-machine
для управління локальними машинами на базі VirtualBox, рішення є таким же простим, як для boot2docker:
docker-machine upgrade MACHINE_NAME
Він просить docker-machine
завантажити останню версію boot2docker.iso
та розмістити її як нову кореневу файлову систему в оновленій ВМ.
До речі, докер-машина з підтримкою VirtualBox має свою кореневу файлову систему лише для читання. Це означає, що жодне оновлення вручну не переживе перезавантаження машини. Для мене це було несподіванкою.
Я мав останню версію boot2docker, docker та віртуальну скриньку, але все ще отримував це повідомлення. Здається, біг brew upgrade boot2docker
- не найкраща ідея. Під час запуску boot2docker upgrade
мене попросили встановити купу змінних середовища, і тоді це спрацювало для мене.
Boot2docker попросив мене встановити їх (див. Останні рядки):
$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem
To connect the Docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
Ці три рядки можна вирізати та вставити за один раз у ваш термінал.
Щоб перевірити їх правильність:
$ env
Я намагався запитати сервер Docker у недавнього клієнта:
Рішенням для мене було просто:
export DOCKER_API_VERSION=1.21
Посилання: https://docs.docker.com/engine/reference/commandline/cli/
Правильна відповідь тут дуже стара (Docker перейменував boot2docker на Docker Machine і додав до нього ще деякі функціональні можливості) .
У будь-якому випадку я зіткнувся з тією ж проблемою і зайняв близько 3 днів, щоб виправити :(
Ось рішення
1) знайти місце розташування boot2docker.iso
sudo find ~/ -name 'boot2docker.iso'
2) видалити boot2docker.iso
файл, зробивши резервну копію
/Users/{user}/.docker/machine/cache/boot2docker.iso
3) видалити ваш докер vm
docker-machine rm {default}
це повинно видалити і це:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4) створити новий докер vm
docker-machine create --driver virtualbox default
це boot2docker.iso
спочатку завантажить новий, а потім використає його для створення вашої vm.
Тепер це має виправити :)
Якщо ви отримуєте будь-яку помилку тут, наприклад:
Running pre-create checks...
(mega-docker) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp: lookup api.github.com on 192.168.0.1:53: read udp 192.168.0.103:53947->192.168.0.1:53: i/o timeout"
спробуйте завантажити boot2docker.iso
файл вручну, перейшовши на https://api.github.com/repos/boot2docker/boot2docker/releases/latest, потім клацнувши на html_url
і нарешті вибравши файл для завантаження.
як тільки ви отримаєте файл, перейдіть і помістіть його вручну в /Users/{user}/.docker/machine/cache/
нарешті, повторно запустіть цю команду docker-machine create --driver virtualbox default
Це спрацювало для мене: він просто вимикає віртуальну машину, видаляє та відтворює її та запускає знову. Він повторно запускає shellinit, щоб ваші змінні ENV встановлювали правильну IP-адресу, коли вона повертається.
$ boot2docker poweroff && \
boot2docker delete && \
boot2docker init && \
boot2docker up
$ eval `boot2docker shellinit`
Моє рішення полягало в тому, щоб виконати Close> Power Off на віртуальній машині докера у VirtualBox, а потім перезапустити Kitematic. Це мені це виправило.
Якщо ви прийшли туди за допомогою Ansible, а не boot2docker, ось рішення: Використовуйте docker_api_version: auto
аргумент
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
Я думаю, причина в тому, що модуль docker-py, що використовується Ansible, часто не в тій самій версії, що і сховище apt-get Ubuntu.
boot2docker
. Це теж ваш випадок?