Cómo actualizar Docker en CentOS

Docker es una plataforma de código abierto para desarrollar, enviar y ejecutar aplicaciones. Docker v17.12 es la última versión estable al momento de escribir este artículo. Proporciona la capacidad de empaquetar y ejecutar una aplicación en un entorno totalmente aislado llamado contenedor. Podemos ejecutar muchos contenedores simultáneamente en un host determinado. Los contenedores son ligeros y rápidos porque no necesitan un hipervisor, sino que se ejecutan directamente dentro del kernel de la máquina host.

Arquitectura de Docker

Docker es una aplicación cliente-servidor, donde tanto el cliente como el demonio pueden ejecutarse en el mismo sistema o puede conectar un cliente Docker con un demonio Docker remoto. Los clientes y el demonio de Docker se comunican a través de sockets o API RESTful (Transferencia de estado representacional: es una transferencia sin estado a través de HTTP de una página web que contiene un archivo XML que incluye y describe el contenido deseado).

Los principales componentes de Docker son

  • Docker Daemon : El demonio de Docker (dockerd) escucha las solicitudes de la API de Docker y administra los objetos de Docker, como imágenes, contenedores, redes y volúmenes. Un demonio también puede comunicarse con otros demonios para administrar los servicios de Docker.
  • Docker Client : El cliente de Docker (docker) es la forma principal en la que los usuarios de Docker interactúan con Docker. Cuando usamos comandos como docker run, docker build, etc., el cliente envía estos comandos al docker daemon (dockerd), que los ejecuta. El comando de Docker usa la API de Docker. Puede comunicarse con más de un demonio.
  • Docker Registry (2.4.1): Un registro de Docker almacena imágenes de Docker. Docker Hub y Docker Cloud son registros públicos que cualquiera puede utilizar. De forma predeterminada, Docker está configurado para buscar imágenes en Docker Hub. Incluso podemos configurar nuestro propio registro privado para nuestras imágenes.

En este artículo, explicaré cómo puede actualizar su Docker a la última versión disponible en CentOS 7 y Fedora 27.

Prerrequisitos

Para instalar la versión de Docker CE, necesitamos una versión mantenida de CentOS 7. El repositorio centos-extras debe estar habilitado. Este repositorio está habilitado de forma predeterminada, pero si lo ha deshabilitado, debe volver a habilitarlo.

Actualización de Docker en CentOS 7.4

Para actualizar Docker, se recomienda instalar Docker Community Edition (Docker CE), que lo ayudará a instalar, actualizar y mantener Docker con el soporte y las garantías requeridas para su carga de trabajo particular. Se recomienda el controlador de almacenamiento overlay2. overlay2 es la opción predeterminada para Docker CE. El controlador de almacenamiento controla cómo se almacenan y administran las imágenes y los contenedores en su host Docker. Docker admite varios controladores de almacenamiento diferentes. El devicemapper es nuestra próxima opción, pero requiere direct-lvm para entornos de producción para un mejor rendimiento.

Comencemos con los pasos para actualizar su versión anterior de Docker.

  • Desinstalar las versiones antiguas de Docker

Los paquetes docker y docker-engine se denominan paquetes antiguos. Si está ejecutando estas versiones antiguas, puede desinstalarlas primero para continuar. Ejecute este comando para eliminar todos los rastros de Docker de su servidor.

#yum remove docker docker-common docker-selinux docker-engine

Incluso si esos paquetes se eliminan del servidor, todos los contenidos de la ventana acoplable requeridos, incluidas imágenes, contenedores, volúmenes y redes, se conservan en el /var/lib/docker/ carpeta.

  • Instalar Docker CE

En primer lugar, puede configurar los repositorios de Docker e instalarlos usándolo. Esto facilitará mucho el proceso de instalación y actualización con el mismo repositorio. Para configurar nuestro repositorio, necesitamos la utilidad yum-config-manager que es proporcionada por el paquete yum-utils. Y como se discutió antes, Docker CE prefiere un controlador de almacenamiento, aquí usamos devicemapper . Por lo tanto, para este controlador de almacenamiento, necesitamos este device-mapper-persistent-data and lvm2 packages . Podemos instalar todos estos requisitos previos para configurar nuestro repositorio usando este comando.

#yum install -y yum-utils device-mapper-persistent-data lvm2

A continuación, puede usar el siguiente comando para habilitar el repositorio de Docker estable.

#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce
Loaded plugins: fastestmirror
docker-ce-stable | 2.9 kB 00:00:00 
Loading mirror speeds from cached hostfile
* base: mirrors.coreix.net
* extras: repo.uk.bigstepcloud.com
* updates: mirror.sov.uk.goscomb.net
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 0:17.12.0.ce-1.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 17.12.0.ce-1.el7.centos docker-ce-stable 30 M

Transaction Summary
============================================================================================================================================================================================================
Install 1 Package

This step is optional: Edge y los repositorios de prueba también se incluyen en este archivo de repositorio, está deshabilitado de forma predeterminada. Si lo desea, puede habilitar esos archivos de repositorio también junto con el repositorio estable e instalar el Edge o versiones de prueba disponibles. Esto se puede hacer emitiendo el siguiente comando a continuación:

#yum-config-manager --enable docker-ce-edge
#yum-config-manager --enable docker-ce-test

Después de habilitar estos repositorios, el comando de instalación enviará la instalación desde el Edge Repo.

# yum install docker-ce
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 18.01.0.ce-1.el7.centos docker-ce-edge 33 M
Installing for dependencies:
libtool-ltdl x86_64 2.4.2-22.el7_3 base 49 k

Transaction Summary
============================================================================================================================================================================================================
Install 1 Package (+1 Dependent package)

Entonces, si necesita la última versión estable, puede conservar estos Edge y repositorios de prueba desactivados. Puedes usar el yum-config-manager comando con el --disable marca para deshabilitar estos repositorios.

A veces, todavía puede haber algunos rastros de antiguos componentes de la ventana acoplable presentes en el servidor, incluso si ejecutamos yum remove comando como en el paso 1. Durante la instalación, si hay versiones antiguas de Docker disponibles, informará el error de la siguiente manera:

Transaction check error:
file /usr/bin/docker from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

Eliminé manualmente estos paquetes usando el comando yum remove para continuar con la instalación con éxito como se muestra a continuación:

# yum remove docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Removing:
docker-common x86_64 2:1.12.6-68.gitec8512b.el7.centos @extras 4.5 k
Removing for dependencies:
docker-client x86_64 2:1.12.6-68.gitec8512b.el7.centos @extras 11 M

Transaction Summary
============================================================================================================================================================================================================
Remove 1 Package (+1 Dependent package)

Verificación de la instalación de Docker

Una vez que se completa la instalación, puede iniciar y habilitar el servicio de la ventana acoplable y verificar la instalación ejecutando el hello-world imagen.

# systemctl start docker
# systemctl enable docker
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2018-01-23 06:36:24 UTC; 2s ago
Docs: https://docs.docker.com
Main PID: 30700 (dockerd)
Memory: 23.1M
CGroup: /system.slice/docker.service
├─30700 /usr/bin/dockerd
└─30703 docker-containerd --config /var/run/docker/containerd/containerd.toml

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:66ef312bbac49c39a89aa9bcc3cb4f3c9e7de3788c944158df3ee0176d32b751
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

Actualización de Docker CE

Puede usar el comando de actualización yum para actualizar su versión de Docker a su última versión estable en el futuro. Actualmente, nuestro servidor ya está instalado con la última compilación de Stable Docker disponible, que es la versión Docker 17.12.

# docker -v
Docker version 17.12.0-ce, build c97c6d6

Ahora, si necesitamos actualizar esta versión estable actual a la última disponible Edge versión, puede habilitar el archivo de repositorio de borde en el repositorio de Docker y ejecutar el comando de actualización yum como se muestra a continuación:

# yum-config-manager --enable docker-ce-edge
# yum upgrade docker-ce
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Updating:
docker-ce x86_64 18.01.0.ce-1.el7.centos docker-ce-edge 33 M

Transaction Summary
============================================================================================================================================================================================================
Upgrade 1 Package

Esto instalará la última Edge versión disponible en el repositorio. Puede confirmar la versión de Docker después de la instalación. Por favor refiérase a esto documentación para obtener más información sobre Stable y Edge lanzamientos.

# docker -v
Docker version 18.01.0-ce, build 03596f5

Actualización de Docker en Fedora 27

Como ambos Fedora y CentOS son de RedHat, los comandos utilizados son prácticamente idénticos excepto por las diferencias en el paquete Docker. Similar al caso anterior, en Fedora Además, necesitamos eliminar las versiones antiguas de Docker disponibles e instalar Docker Community Edition (Docker CE) para facilitar la instalación y la actualización.

Prerrequisitos

Para instalar Docker, necesita la versión de 64 bits de estos últimos Fedora 27 versión

Comencemos con los pasos para actualizar su versión anterior de Docker en Fedora.

  • Desinstalar la versión anterior de Docker

Como se mencionó anteriormente, los paquetes docker y docker-engine se denominan paquetes antiguos. Puede eliminar estos paquetes antiguos con este comando a continuación:

#dnf remove docker docker-common docker-selinux docker-engine-selinux docker-engine

Incluso si esos paquetes se eliminan del servidor, todos los contenidos de la ventana acoplable necesarios, incluidas imágenes, contenedores, volúmenes y redes, se conservan en la carpeta / var / lib / docker /.

  • Instalar Docker CE

Necesitamos habilitar el repositorio de Docker para Fedora para instalar la versión Docker CE. Para configurar este repositorio, necesitamos algunos de los comandos para administrar el administrador de paquetes dnf. El dnf-plugins-core El paquete proporciona los comandos para administrar sus repositorios DNF desde la línea de comandos. Puede instalar esto usando el siguiente comando:

# dnf -y install dnf-plugins-core

Ahora, podemos usar este comando para habilitar el repositorio estable e instalar la última versión estable disponible en este repositorio usando el dnf install mando.

# dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Adding repo from: https://download.docker.com/linux/fedora/docker-ce.repo

# dnf install docker-ce
Last metadata expiration check: 0:00:20 ago on Mon 22 Jan 2018 09:43:35 AM UTC.
Dependencies resolved.
============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 17.12.0.ce-1.fc27 docker-ce-stable 31 M
Installing dependencies:
container-selinux noarch 2:2.38-1.fc27 updates 36 k
iptables x86_64 1.6.1-4.fc27 fedora 471 k
libnetfilter_conntrack x86_64 1.0.6-4.fc27 fedora 62 k
libnfnetlink x86_64 1.0.1-11.fc27 fedora 31 k
policycoreutils-python-utils x86_64 2.7-1.fc27 fedora 223 k

Transaction Summary
============================================================================================================================================================================================================
Install 6 Packages

Como se dijo antes, ambos Edge y los archivos de repositorio de prueba están presentes en este repositorio de Docker (archivo docker.repo). Pero ambos están deshabilitados de forma predeterminada para habilitar solo el nivel Estable. Según sea necesario, puede habilitarlo usando estos comandos a continuación:

# dnf config-manager --set-enabled docker-ce-edge
# dnf config-manager --set-enabled docker-ce-test

Actualizar Docker CE

Para actualizar su Docker CE, puede utilizar dnf -y upgrade . Esto se actualizará al último nivel estable disponible dentro del repositorio de Docker.

# dnf -y upgrade docker-ce

Terminando

Docker ha facilitado la vida a los desarrolladores y equipos de operaciones para crear e implementar aplicaciones rápidamente, respectivamente. Con la empresa lanzando actualizaciones rápidas de Docker para mejorar el producto y abordar los requisitos del cliente, el futuro es definitivamente brillante para Docker.