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 usar. 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 tanto en CentOS 7 como en Fedora 27.
Prerrequisitos
Para instalar la versión 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. los 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.
-
Desinstale 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 necesarios, incluidas imágenes, contenedores, volúmenes y redes, se conservan en el /var/lib/docker/
carpeta.
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ó anteriormente, 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:
Los repositorios perimetrales y 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 Edge o las 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 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 mantener estos repositorios de Edge y Test 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 como se muestra a continuación:
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 correctamente 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 versió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 versión de Edge disponible, puede habilitar el archivo de repositorio de Edge 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 versión de Edge 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 las versiones Stable y Edge.
# docker -v Docker version 18.01.0-ce, build 03596f5
Actualización de Docker en Fedora 27
Como Fedora y CentOS son de RedHat, los comandos utilizados son prácticamente idénticos, excepto por las diferencias en el paquete Docker. Al igual que en el caso anterior, también en Fedora necesitamos eliminar las versiones antiguas de Docker disponibles e instalar Docker Community Edition (Docker CE) para facilitar la instalación y actualización.
Prerrequisitos
Para instalar Docker, necesita la versión de 64 bits de esta última versión de Fedora 27
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 /.
Necesitamos habilitar el repositorio de Docker para que Fedora instale la versión de Docker CE. Para configurar este repositorio, necesitamos algunos de los comandos para administrar el administrador de paquetes dnf. los 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 indicó anteriormente, tanto los archivos de repositorio de prueba como los de Edge 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 compañía lanzando actualizaciones rápidas de Docker para mejorar el producto y abordar los requisitos de los clientes, el futuro es definitivamente brillante para Docker.