Tiempo estimado de lectura: 10 minutos
Para empezar con Docker Engine en CentOS, asegúrate de que cumples los requisitos previos y luegoinstala Docker.
Requisitos previos
Requisitos del sistema operativo
Para instalar Docker Engine, se necesita una versión mantenida de CentOS 7 u 8.Las versiones archivadas no están soportadas ni probadas.
El repositorio centos-extras
debe estar habilitado. Este repositorio está habilitado por defecto, pero si lo ha deshabilitado, debe volver a habilitarlo.
Se recomienda el controlador de almacenamiento overlay2
.
Desinstalar versiones antiguas
Las versiones anteriores de Docker se llamaban docker
o docker-engine
. Si estos estáninstalados, desinstálelos, junto con las dependencias asociadas.
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
No pasa nada si yum
informa de que ninguno de estos paquetes está instalado.
El contenido de /var/lib/docker/
, incluyendo imágenes, contenedores, volúmenes y redes, se conserva. El paquete Docker Engine se llama ahora docker-ce
.
Métodos de instalación
Puedes instalar Docker Engine de diferentes maneras, dependiendo de tus necesidades:
-
La mayoría de los usuarios configuran los repositorios de Docker e instalan desde ellos, para facilitar las tareas de instalación y actualización. Este es el enfoque recomendado.
-
Algunos usuarios descargan el paquete RPM y lo instalan manualmente y gestionan las actualizaciones de forma completamente manual. Esto es útil en situaciones tales como la instalación de Docker en sistemas con trampa de aire sin acceso a Internet.
-
En entornos de prueba y desarrollo, algunos usuarios optan por utilizar scripts de conveniencia automatizados para instalar Docker.
Instalar utilizando el repositorio
Antes de instalar el motor Docker por primera vez en una nueva máquina anfitriona, es necesario configurar el repositorio Docker. Después, puedes instalar y actualizar Dockerdesde el repositorio.
Configuración del repositorio
Instala el paquete yum-utils
(que proporciona la utilidad yum-config-manager
) y configura el repositorio estable.
$ sudo yum install -y yum-utils$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Opcional: Habilitar los repositorios nocturnos o de prueba.
Estos repositorios están incluidos en el archivo
docker.repo
anterior pero están deshabilitadospor defecto. Puede habilitarlos junto con el repositorio estable. El siguiente comando habilita el repositorio nocturno.$ sudo yum-config-manager --enable docker-ce-nightly
Para habilitar el canal de pruebas, ejecute el siguiente comando:
$ sudo yum-config-manager --enable docker-ce-test
Puedes desactivar el repositorio nocturno o de pruebas ejecutando el comando
yum-config-manager
con la bandera--disable
. Para volver a activarlo, utilice la bandera--enable
. El siguiente comando desactiva el repositorio nocturno.$ sudo yum-config-manager --disable docker-ce-nightly
Aprende sobre los canales nocturnos y de prueba.
Instalar Docker Engine
Instalar la última versión de Docker Engine y containerd, o ir al siguiente paso para instalar una versión específica:
$ sudo yum install docker-ce docker-ce-cli containerd.io
Si se le pide que acepte la clave GPG, verifique que la huella digital coincide
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
, y si es así, acéptela.¿Tienes varios repositorios de Docker?
Si tienes varios repositorios de Docker habilitados, al instalar o actualizar sin especificar una versión en el comando
yum install
oyum update
siempre se instala la versión más alta posible, que puede no ser la adecuada para tus necesidades de estabilidad.Docker está instalado pero no iniciado. El grupo
docker
se crea, pero no se añade ningún usuario al grupo.Para instalar una versión específica de Docker Engine, liste las versiones disponiblesen el repo, luego seleccione e instale:
a. Liste y ordene las versiones disponibles en su repo. Este ejemplo ordena los resultados por número de versión, de mayor a menor, y está truncado:
$ yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
La lista devuelta depende de los repositorios que estén habilitados, y es específica para su versión de CentOS (indicada por el sufijo
.el7
en este ejemplo).b. Instalar una versión específica por su nombre de paquete completo, que es el nombre del paquete (
docker-ce
) más la cadena de la versión (2ª columna) empezando por los primeros dos puntos (:
), hasta el primer guion, separado por un guion (-
). Por ejemplo,docker-ce-18.09.1
.$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
Docker está instalado pero no iniciado. El grupo
docker
está creado, pero no se ha añadido ningún usuario al grupo.- Iniciar Docker.
$ sudo systemctl start docker
Verifica que el motor Docker está instalado correctamente ejecutando la
hello-world
imagen.$ sudo docker run hello-world
Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando elcontenedor se ejecuta, imprime un mensaje informativo y sale.
El motor de Docker está instalado y funcionando. Es necesario utilizar
sudo
para ejecutar Dockercommands. Continúe con la postinstalación de Linux para permitir a los usuarios con privilegios ejecutar comandos Docker y para otros pasos de configuración opcionales.Actualizar Docker Engine
Para actualizar Docker Engine, siga las instrucciones de instalación, eligiendo la nueva versión que desea instalar.
Instalar desde un paquete
Si no puedes utilizar el repositorio de Docker para instalar Docker, puedes descargar el archivo
.rpm
de tu versión e instalarlo manualmente. Es necesario descargar un nuevo archivo cada vez que quiera actualizar el motor Docker.
- Vaya a https://download.docker.com/linux/centos/and elija su versión de CentOS. A continuación, navega hasta
x86_64/stable/Packages/
y descarga el archivo.rpm
de la versión de Docker que quieras instalar.
Nota: Para instalar un paquete nocturno o de prueba (pre-lanzamiento), cambia la palabra
stable
en la URL anterior pornightly
otest
.Conozca los canales nocturnos y de prueba.- Instale el motor Docker, cambiando la ruta de abajo por la ruta donde descargóel paquete Docker.
$ sudo yum install /path/to/package.rpm
Docker está instalado pero no iniciado. El grupo
docker
está creado, pero no se añaden usuarios al grupo.Iniciar Docker.
$ sudo systemctl start docker
Verifica que el motor Docker está instalado correctamente ejecutando la
hello-world
imagen.$ sudo docker run hello-world
Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando elcontenedor se ejecuta, imprime un mensaje informativo y sale.
El motor de Docker está instalado y funcionando. Necesita usar
sudo
para ejecutar los comandos de Docker.Continúe con los pasos de postinstalación para Linux para permitir a los usuarios con privilegios ejecutar los comandos de Docker y para otros pasos de configuración opcionales.Actualizar el motor Docker
Para actualizar el motor Docker, descargue el archivo del paquete más nuevo y repita el procedimiento deinstalación, utilizando
yum -y upgrade
en lugar deyum -y install
, y apuntando al nuevo archivo.Instalar utilizando el script de conveniencia
Docker proporciona scripts de conveniencia en get.docker.comand test.docker.com para instalar versiones de borde y de prueba de Docker Engine – Community en entornos de desarrollo de forma rápida y no interactiva. El código fuente de los scripts se encuentra en el repositorio
docker-install
.El uso de estos scripts no se recomienda para entornos de producción, y debe comprender los riesgos potenciales antes de utilizarlos:
- Los scripts requieren
root
osudo
privilegios para ejecutarse. Por lo tanto, debe examinar y auditar cuidadosamente los scripts antes de ejecutarlos.- Los scripts intentan detectar su distribución y versión de Linux y configurar su sistema de gestión de paquetes por usted. Además, los scripts no le permiten personalizar ningún parámetro de instalación. Esto puede llevar a una configuración no soportada, ya sea desde el punto de vista de Docker o de las directrices y estándares de su propia organización.
- Los scripts instalan todas las dependencias y recomendaciones del gestor de paquetes sin pedir confirmación. Esto puede instalar un gran número de paquetes, dependiendo de la configuración actual de su máquina anfitriona.
- El script no proporciona opciones para especificar qué versión de Docker instalar, e instala la última versión que se libera en el canal «edge».
- No utilice el script de conveniencia si Docker ya ha sido instalado en la máquina host utilizando otro mecanismo.
Este ejemplo utiliza el script en get.docker.com parainstalar la última versión de Docker Engine – Community en Linux. Para instalar la última versión de prueba, utilice test.docker.com en su lugar. En cada uno de los comandos siguientes, sustituya cada ocurrencia de
get
portest
.Advertencia:
Examine siempre los scripts descargados de Internet antes de ejecutarlos localmente.
$ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh get-docker.sh<...>
Si quieres usar Docker como usuario no root, deberías considerar ahora añadir tu usuario al grupo «docker» con algo como:
$ sudo usermod -aG docker <your-user>
¡Recuerda cerrar la sesión y volver a entrar para que esto tenga efecto!
Advertencia:
Añadir un usuario al grupo «docker» le otorga la capacidad de ejecutar contenedoreslo que puede ser utilizado para obtener privilegios de root en el host Docker. ConsulteDocker Daemon Attack Surfacepara obtener más información.
Docker Engine – Community está instalado. Se inicia automáticamente en las distribuciones basadas en
DEB
. En las distribuciones basadas enRPM
, es necesario iniciarlo manualmente usando el comando apropiadosystemctl
oservice
. Como indica el mensaje, los usuarios que no son root no pueden ejecutar los comandos de Docker de forma predeterminada.Nota:
Para instalar Docker sin privilegios de root, consulteEjecutar el demonio de Docker como usuario no root (modo Rootless).
Actualizar Docker después de usar el script de conveniencia
Si instaló Docker usando el script de conveniencia, debe actualizar Dockerusando su gestor de paquetes directamente. No hay ninguna ventaja en volver a ejecutar el script de conveniencia, y puede causar problemas si intenta volver a añadirrepositorios que ya se han añadido a la máquina anfitriona.
Desinstalar el motor Docker
- Desinstalar el motor Docker, la CLI y los paquetes Containerd:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
Las imágenes, los contenedores, los volúmenes o los archivos de configuración personalizados de su host no se eliminan automáticamente. Para eliminar todas las imágenes, contenedores y volúmenes:
$ sudo rm -rf /var/lib/docker$ sudo rm -rf /var/lib/containerd
Debe eliminar manualmente cualquier archivo de configuración editado.
- Continúe con los pasos posteriores a la instalación de Linux.
- Revisa los temas en Desarrollar con Docker para aprender a construir nuevas aplicaciones usando Docker.
- Requisitos, apt, instalación, centos, rpm, instalar, desinstalar, actualizar, actualizar.