Como atualizar o Docker (para 1.10.0) no CentOS7?

2

O Docker 1.8.2-10.el7.centos foi instalado e pôde ser executado no CentOS7.

Para atualizar o docker este post foi lido e os seguintes comandos foram emitido:

  • curl -L https://get.docker.com/builds/Linux/x86_64/docker-latest > /usr/bin/docker; chmod +x /usr/bin/docker
  • curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.service > /usr/lib/systemd/system/docker.service
  • curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.socket > /usr/lib/systemd/system/docker.socket

Problema

Quando a janela de encaixe é iniciada:

systemctl start docker

parece travar e / var / log / messages indica que:

Feb 11 00:22:01 localhost systemd: Device dev-disk-by\x2duuid-f00f4f0a\x2dba57\x2d468b\x2dba82\x2d72f1bb087bbb.device appeared twice with different sysfs paths /sys/devices/virtual/block/loop0 and /sys/devices/virtual/block/dm-6
Feb 11 00:22:05 localhost docker: time="2016-02-11T00:22:05.977110830+01:00" level=info msg="calculated checksum for layer 26de6fe292b2275378ce421742105813ee98fb49a5e0e45c1fd89e20eedc2c31: sha256:0c42efc496d9944258fb38ccfa64f53c32433a24daa3ad64144e48c5deb1c78c"
Feb 11 00:22:06 localhost kernel: EXT4-fs (dm-8): mounted filesystem with ordered data mode. Opts: (null)
Feb 11 00:22:06 localhost systemd-udevd: conflicting device node '/dev/mapper/docker-253:0-68595821-51009a2811797c49222fd5f9cb9e38fbe4fca9cf2a7fcfb1151d34c0b545a42a' found, link to '/dev/dm-8' will not be created
Feb 11 00:22:06 localhost systemd: Device dev-disk-by\x2duuid-f00f4f0a\x2dba57\x2d468b\x2dba82\x2d72f1bb087bbb.device appeared twice with different sysfs paths /sys/devices/virtual/block/loop0 and /sys/devices/virtual/block/dm-8

Discussão

  1. O estranho é que o binário foi atualizado:

    [root @ localhost] # docker -v Docker versão 1.10.0, compilação 590d5108

mas o serviço não pode ser iniciado.

  1. Embora o 1.10.0 não possa ser iniciado no CentOS7, o docker 1.9.0 pode iniciar: curl -L https://get.docker.com/builds/Linux/x86_64/docker-1.9.0 > /usr/bin/docker; chmod +x /usr/bin/docker

Pergunta

Como atualizar o Docker para o 1.10.0 no CentOS7?

    
por 030 11.02.2016 / 00:28

2 respostas

1

O

driver de armazenamento padrão do docker pode ter mudado.

Eu tive o mesmo problema e hoje consegui iniciar o docker 1.10 finalmente. Meu problema era o comando inicial do docker. Parece que eu usei a janela de encaixe com o driver de armazenamento devicemapper e o driver da docker 1.10 não era o mesmo.

Aqui está o que eu tentei.

1. Exclua arquivos de rede.

Quando desisti de atualizar o docker 1.10 uma vez e o rebaixei de 1.10 para 1.9, o 1.9 não iniciava. Tudo começou depois que eu deletei esses arquivos. Isso pode não afetar seu problema, mas decidi excluí-los antes da janela de atualização a partir de agora.

mkdir /var-lib-docker-network-files  
mv /var/lib/docker/network/files/* /var-lib-docker-network-files

2. Sobrescreva ExecStart como seu comando personalizado.

Você pode ver o comando start padrão aqui

vi /lib/systemd/system/docker.service 

O meu era completamente o mesmo com o repositório oficial.

ttps: //github.com/docker/docker/blob/master/contrib/init/systemd/docker.service

Deveria ser assim:

ExecStart=/usr/bin/docker daemon -H fd://

Este comando não funcionou para mim. Então eu fiz um arquivo que anulou o comando como um arquivo conf de empacotamento aqui;

vi /etc/systemd/system/docker.service.d/docker.conf 

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -s devicemapper -H fd://

3. Recarregue e comece

Certifique-se de recarregar o systemd antes de iniciar a janela de encaixe.

systemctl daemon-reload
service docker start

FYI, este comando removerá todas as imagens do docker.

Eu vi uma outra linha ExecStart em aqui .

vi /etc/systemd/system/docker.service.d/docker.conf 

[Service]
ExecStart=
ExecStart=docker daemon -D -s overlay

Embora isso tenha funcionado e feito o docker 1.10 iniciado, todas as imagens do docker desapareceram. Fiquei muito irritado porque docker images não retornou nada. Mas eu ainda tinha muitos arquivos de imagem reais em /var/lib/docker/devicemapper/ , então pensei que este comando referisse um diretório estranho. Então eu recebi a resposta, é devicemapper .

Documento Oficial

Você pode ver os detalhes aqui . Podemos ter que aprender sobre o daemon.

    
por 17.02.2016 / 12:33
0

migração do docker 1.10 precisa de muito tempo

Sua janela de encaixe 1.10 será iniciada se você puder esperar por um dia depois de reiniciá-la.

All your current images, tags and containers are automatically migrated to the new foundation the first time you start Docker Engine 1.10. Before loading your container, the daemon will calculate all needed checksums for your current data, and after it has completed, all your images and tags will have brand new secure IDs.

While this is simple operation, calculating SHA256 checksums for your files can take time if you have lots of image data. On average you should assume that migrator can process data at a speed of 100MB/s. During this time your Docker daemon won’t be ready to respond to requests.

Por favor, veja aqui .

    
por 10.03.2016 / 11:24