Docker es una herramienta que se utiliza para ejecutar software en un contenedor. Es una excelente manera para que los desarrolladores y usuarios se preocupen menos por la compatibilidad con un sistema operativo y las dependencias, ya que el software contenido debe ejecutarse de manera idéntica en cualquier sistema.
Docker está disponible para descargar e instalar en Fedora, así como en la mayoría de las otras distribuciones de Linux. Sin embargo, instalarlo en Fedora puede ser un poco complicado porque Red Hat no ofrece soporte nativo para Docker en sus distribuciones. En cambio, Red Hat impulsa el soporte para Podman, una alternativa a Docker. Esto hace que Docker sea un poco más difícil de instalar, pero aún es posible en Fedora.
En esta guía, le mostraremos cómo instalar Docker en Fedora y comenzar a instalar software en contenedores. Después de instalar Docker, puede usarlo para instalar paquetes de software de la misma manera que usaría el administrador de paquetes de su distribución para descargar una aplicación. La diferencia de usar Docker es que todo está más automatizado, y la compatibilidad y las dependencias ya no son problemas potenciales.
En este tutorial aprenderás:
- Cómo instalar Docker
- Cómo iniciar Docker y hacer que se ejecute automáticamente al arrancar
- Cómo ejecutar Docker sin root
- Cómo buscar una imagen de Docker
- Cómo instalar una imagen de Docker
- Cómo ejecutar una imagen de Docker
- Cómo monitorear Docker con varios comandos
- Cómo iniciar automáticamente un contenedor Docker
Docker ejecutando una imagen de contenedor en Fedora Linux
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | FedoraLinux |
Software | Docker |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Instalar Docker en Fedora
Red Hat ha puesto algunos obstáculos en nuestro camino, por lo que no podemos instalar Docker con una simple dnf install
dominio. Primero necesitaremos agregar el repositorio de Docker a nuestro sistema y luego desinstalar algunos paquetes en conflicto que están instalados de forma predeterminada en Fedora.
- Comience instalando el
dnf-plugins-core
paquete, en caso de que no esté ya en su sistema. Esto le permitirá administrar sus repositorios dnf y agregarles el repositorio oficial de Docker.
$ sudo dnf -y install dnf-plugins-core
- A continuación, agregue el repositorio de Docker a su sistema con el siguiente comando.
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
- Antes de comenzar a instalar Docker, debemos eliminar el
podman
y buildah
paquetes de nuestro sistema, ya que entran en conflicto con Docker e impedirán su instalación.
$ sudo dnf remove podman buildah
- Finalmente, podemos instalar los tres paquetes Docker que necesitaremos ejecutando el siguiente comando.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
- Una vez completada la instalación, inicie el servicio Docker y, opcionalmente, habilítelo para que se ejecute siempre que se reinicie el sistema:
$ sudo systemctl start docker.service
$ sudo systemctl start containerd.service
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
- Puede verificar que Docker esté instalado y recopilar información sobre la versión actual ingresando este comando:
$ sudo docker version
Salida del comando de versión docker - También hay una manera rápida y fácil de ver cuántos contenedores Docker se están ejecutando actualmente y ver algunas de las opciones configuradas de Docker ingresando:
$ sudo docker info
Salida del comando docker info que muestra su configuración
Ejecutar Docker sin root
Por defecto, tendrás que usar sudo
o inicie sesión para rootear en cualquier momento que desee ejecutar un comando de Docker. El siguiente paso es opcional, pero si prefiere la capacidad de ejecutar Docker como su usuario actual, agregue su cuenta al grupo de Docker con este comando:
$ sudo usermod -aG docker $USER
Deberá reiniciar su sistema para que esos cambios surtan efecto.
$ reboot
Buscando una imagen de Docker
Ahora está listo para instalar imágenes con Docker. Si ya conoce el nombre de una imagen que le gustaría instalar, puede pasar a la siguiente sección. Si necesita buscar a través de Docker el software deseado, puede usar la siguiente sintaxis de comando:
$ docker search [name]
Por ejemplo, intentemos buscar nginx, que es un popular software de servidor web.
$ docker search nginx
Docker puede buscar cualquier imagen de contenedor disponible
Como puede ver, hay una imagen oficial para nginx (indicada por OFFICIAL
columna) simplemente llamado nginx
. También hay otros lanzamientos disponibles, y tendrías que leer sus descripciones para ver qué hacen diferente a la imagen oficial.
Instalar una imagen de Docker
Una vez que sepa qué imagen desea instalar, puede usar el siguiente comando para indicarle a Docker que descargue el software deseado. Solo como ejemplo, instalaremos el hello-world
paquete que se puede usar para asegurarse de que Docker pueda descargar y ejecutar imágenes correctamente.
$ docker pull hello-world
Docker descargando una imagen de contenedor
El resultado de la captura de pantalla anterior indica que Docker pudo encontrar y descargar la imagen que especificamos.
Ejecutar una imagen de Docker
Ahora que la imagen está descargada, ejecútela con el siguiente comando:
$ docker run hello-world
Docker pudo ejecutar la imagen hello-world con éxito Docker de supervisión
Docker nos brinda muchas opciones para ver qué está pasando con nuestras imágenes, cuántos recursos del sistema están usando, etc. Los siguientes comandos son útiles para monitorear Docker y nuestras imágenes instaladas.
Para ver qué contenedores de Docker se están ejecutando y verificar su estado actual, escriba:
$ docker container ls
El comando docker container ls muestra los contenedores actualmente en ejecución
Para ver una lista de todas las imágenes de Docker instaladas, escriba:
$ docker images
El comando Docker Images muestra qué imágenes están instaladas actualmente en Docker
Para ver el uso actual de CPU, RAM y red de las imágenes en ejecución, escriba:
$ docker stats
Vea el uso actual del sistema de las imágenes de Docker con el comando de estadísticas de Docker
Para ver la configuración de red de Docker, escriba:
$ docker network ls
Ver las redes actualmente configuradas en Docker con docker network ls Iniciar un contenedor automáticamente
Ya hemos visto cómo asegurarnos de que el servicio Docker se inicie automáticamente cuando se inicie la computadora. En caso de que te hayas saltado ese paso, aquí está el comando nuevamente.
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
También podemos controlar los servicios de Docker para que se inicien automáticamente. Aquí hay algunos comandos para controlar su comportamiento. Usaremos nginx
como nuestro software de ejemplo en estos comandos.
- Para iniciar un nuevo contenedor y configurarlo para que se reinicie automáticamente a menos que se haya detenido o Docker se haya reiniciado, ejecute el siguiente comando.
$ docker run -d --restart unless-stopped nginx
- Si el contenedor ya se está ejecutando, use este comando para asegurarse de que se reinicie automáticamente.
$ docker update --restart unless-stopped nginx
- También podemos asegurarnos de que todos los contenedores se reinician automáticamente, a menos que se detengan explícitamente, usando el siguiente comando.
$ docker update --restart unless-stopped $(docker ps -q)
- Para reiniciar siempre un contenedor, incluso si se ha detenido manualmente, use el
always
opción en lugar de unless stopped
.
$ docker update --restart always nginx
- También puede usar el
on-failure
opción para permitir que los contenedores solo se reinicien automáticamente si han encontrado un error.
$ docker update --restart on-failure nginx
- Por último, para volver a configurar su contenedor a la configuración predeterminada, lo que significa que no se reinicia automáticamente, use el
no
opción.
$ docker update --restart no nginx
Resolución de problemas
Si tiene problemas con Docker, incluidos errores de permisos o "No se puede conectar con el demonio de Docker", los desarrolladores de Docker tienen un script útil que puede ejecutar para verificar una serie de problemas comunes. Aquí se explica cómo descargarlo y ejecutarlo.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh
$ bash ./check-config.sh
Ejecutar el script de configuración de verificación de Docker nos muestra si algo está mal configurado en nuestro sistema Pensamientos finales
Aunque RHEL, y por extensión Fedora, no es compatible con Docker de forma nativa, aún es posible ponerlo en funcionamiento, como hemos visto en esta guía. Las herramientas nativas de RHEL, como podman y buildah, son compatibles con Docker, pero no necesitan una arquitectura de servidor/cliente para ejecutarse. El uso de herramientas nativas, siempre que sea posible, es siempre la forma recomendada de hacerlo, pero por una razón u otra, es posible que aún desee instalar el Docker original.