Назад | Перейти на главную страницу

Как вручную обновить версию докера на докер-машине?

docker-machine обеспечивает upgrade команда, однако она обновляется только до последней стабильной версии

Я хочу установить 1.10RC2 на свои докеры, и я не уверен, что делать с этим.

ОБНОВИТЬ

На страница релизов докеров он показывает эту команду:
curl -fsSL https://test.docker.com/ | sh

Я думал, что попробую это. Я ssh'd через docker-machine ssh swarm-master и запустил его.

Это выглядело многообещающе ... запустив это, похоже, сценарий установки / обновления, он сделал кучу вещей. Потом:

root@swarm-master:~# docker version
Client:
 Version:      1.10.0-rc2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c1cdc6e
 Built:        Wed Jan 27 22:14:06 2016
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Кажется, обновился, но демон не работает.

https://docs.docker.com/engine/articles/systemd/ показывает пару способов. Я попытался:

$ sudo systemctl start docker

и

$ sudo service docker start

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

Мой хост - Debian 8.

я могу сделать docker daemon и он работает на переднем плане ... делая это впервые, он прошел и перенесли все мои изображения... вроде работает нормально, но

Итак, мой вопрос теперь - как правильно (как в: так же, как это сделает докер-машина) запустить демон?

Итак, я нашел способ:

$ docker-machine ssh swarm-master
swarm-master# curl -fsSL https://test.docker.com/ | sh
swarm-master# docker daemon

Подождите, пока демон обновит все изображения до формата 1.10, а затем оставьте его работать.

Между тем в другой оболочке:

$ docker-machine regenerate-certs swarm-master

(Не знаю, зачем нам это делать, но без этого последний перезапуск не удался)
Команда должна завершиться, хотя и со следующим предупреждением:

Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Unable to verify the Docker daemon is listening: Maximum number of retries (10) exceeded

Затем:

$ docker-machine restart swarm-master
$ eval $(docker-machine env --swarm swarm-master)
$ docker-machine ls

На этом этапе вы должны увидеть, что мастер обновлен и работает:

NAME           ACTIVE      DRIVER         STATE     URL                       SWARM                   DOCKER        ERRORS
swarm-master   * (swarm)   digitalocean   Running   tcp://123.45.67.89:2376   swarm-master (master)   v1.10.0-rc2

Повторите те же шаги (без eval env) для каждой машины в рое.

К сожалению, проблема все еще существует:

NAME           ACTIVE      DRIVER         STATE     URL                        SWARM                   DOCKER        ERRORS
swarm-1        -           digitalocean   Running   tcp://123.45.67.98:2376    swarm-master            v1.10.0-rc2
swarm-master   * (swarm)   digitalocean   Running   tcp://123.45.67.89:2376    swarm-master (master)   v1.10.0-rc2

Выглядит хорошо, да?

Но:

$ docker info
Containers: 7
Images: 13
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 1
 swarm-master: 123.45.67.89:2376
  └ Status: Healthy
  └ Containers: 7
  └ Reserved CPUs: 0 / 1
  └ Reserved Memory: 0 B / 1.026 GiB
  └ Labels: executiondriver=native-0.2, kernelversion=3.16.0-4-amd64, operatingsystem=Debian GNU/Linux 8 (jessie), provider=digitalocean, storagedriver=aufs
CPUs: 1
Total Memory: 1.026 GiB
Name: 0dc444daa840

Только один узел признан частью роя :(

Чтобы исправить это, перейдите к отсутствующему узлу роя:

$ docker-machine ssh swarm-1
swarm-1# docker run -d swarm join --addr=<node ip>:2376 consul://<consul ip>:8500

docker info должен теперь показать, что оба узла находятся в рое.

Удивлен, что на этот вопрос еще не ответили должным образом, и, возможно, все изменилось, но это очень просто. Я только что провел этот тест на рое с мастером и двумя членами.

Перед:

C:\> docker version
Client:
 Version:      17.06.0-ce
 API version:  1.29 (downgraded from 1.30)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 21:43:09 2017
 OS/Arch:      linux/amd64
 Experimental: false

Вот команды по порядку:

C:\> docker-machine upgrade default

Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Stopping machine to do the upgrade...
Upgrading machine "default"...
Copying I:\Docker\cache\boot2docker.iso to I:\Docker\machines\default\boot2docker.iso...
Starting machine back up...
Restarting docker...


C:\> docker-machine upgrade swarmnode02

Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Stopping machine to do the upgrade...
Upgrading machine "swarmnode02"...
Copying I:\Docker\cache\boot2docker.iso to I:\Docker\machines\swarmnode02\boot2docker.iso...
Starting machine back up...
Restarting docker...


C:\> docker-machine upgrade swarmnode03

 Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Stopping machine to do the upgrade...
Upgrading machine "swarmnode03"...
Copying I:\Docker\cache\boot2docker.iso to I:\Docker\machines\swarmnode03\boot2docker.iso...
Starting machine back up...
Restarting docker...

После:

C:\> docker version
Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.1-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   874a737
 Built:        Thu Aug 17 22:54:55 2017
 OS/Arch:      linux/amd64
 Experimental: false

C:\> docker-machine ls
NAME          ACTIVE   DRIVER              STATE     URL                          SWAR
M   DOCKER        ERRORS
default       *        vmwareworkstation   Running   tcp://192.168.200.132:2376
    v17.06.1-ce
swarmnode02   -        vmwareworkstation   Running   tcp://192.168.200.133:2376
    v17.06.1-ce
swarmnode03   -        vmwareworkstation   Running   tcp://192.168.200.134:2376
    v17.06.1-ce