Como atualizar manualmente a versão do docker em um docker-machine?

2

docker-machine fornece um comando upgrade , no entanto, ele é atualizado apenas para a versão estável mais recente

Eu quero instalar o 1.10RC2 em minhas máquinas docker e não tenho certeza das etapas para fazer isso

UPDATE

Na página de lançamentos do docker , ele mostra este comando:
curl -fsSL https://test.docker.com/ | sh

Eu pensei em testar isso. Eu ssh'd no via docker-machine ssh swarm-master e corri.

Parecia promissor ... rodar ele parece ser um script de instalação / atualização, ele fez um monte de coisas. Depois:

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?

Parece que o upgrade foi feito, mas o daemon não está em execução.

O

link mostra algumas maneiras. Eu tentei:

$ sudo systemctl start docker

e

$ sudo service docker start

Em ambos os casos, o comando retorna sem saída, mas não parece ter feito nada, o daemon ainda não está em execução.

Meu host é o Debian 8.

Eu posso fazer docker daemon e ele é executado em primeiro plano ... fazendo isso pela primeira vez e migrou todas as minhas imagens ... parece funcionar bem, mas

Então, minha pergunta agora é: como fazer corretamente (como em: da mesma forma que o docker-machine faria isso) executar o daemon?

    
por Anentropic 31.01.2016 / 19:11

2 respostas

3

Então, encontrei um jeito:

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

Aguarde até que o daemon atualize todas as imagens para o formato 1.10 e, em seguida, deixe-o em execução.

Enquanto isso, em outro shell:

$ docker-machine regenerate-certs swarm-master

(Eu não sei porque temos que fazer isso, mas a última reinicialização falha sem isso)
O comando deve ser concluído, embora com o seguinte aviso:

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

Então:

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

Neste ponto, você deve ver o mestre atualizado e em execução:

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

Repita os mesmos passos (menos o eval env ) para cada máquina no enxame.

Infelizmente, ainda há um problema:

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

Parece bom, sim?

Mas:

$ 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

Apenas um nó reconhecido como parte do enxame: (

Para corrigir isso, vá para o nó do enxame perdido:

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

docker info agora deve mostrar que ambos os nós estão no enxame.

    
por 01.02.2016 / 11:30
0

Surpreso isso ainda não foi respondido corretamente, e talvez as coisas tenham mudado, mas isso é muito fácil. Acabei de executar este teste em um enxame com um mestre e dois membros.

Antes:

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

Aqui estão os comandos em ordem:

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...

Depois:

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
    
por 24.08.2017 / 08:18

Tags