Docker es una herramienta que le permite crear, implementar y administrar paquetes ligeros e independientes llamados contenedores . Estos contenedores tienen el código, las bibliotecas, el tiempo de ejecución, la configuración del sistema y las dependencias necesarias para ejecutar una aplicación.
Esta guía cubre la instalación de Docker Engine en varias distribuciones de Linux utilizando apt administrador de paquetes, incluidos Ubuntu y Debian, además de obtener y ejecutar imágenes de Docker.
Antes de comenzar
-
Asegúrese de tener acceso de línea de comandos a un servidor Linux que ejecute una distribución de Linux compatible. De lo contrario, siga las guías Introducción y Configuración y protección de una instancia informática para crear un nuevo Linode.
Nota Esta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados tienen el prefijo
sudo
. Si no está familiarizado consudo
comando, consulte la guía Usuarios y grupos. -
Revise las siguientes guías de Docker para obtener una mejor comprensión de Docker, sus beneficios y cuándo usarlo.
- Una introducción a Docker
- Cuándo y por qué usar Docker
Instalación de Docker Engine en Ubuntu y Debian
Docker Engine es el software de creación de contenedores subyacente que se utiliza al implementar contenedores Docker. Las siguientes instrucciones instalarán Docker Engine en una de estas versiones compatibles de Ubuntu y Debian:
Distribuciones admitidas: Ubuntu 20.04, Ubuntu 18.04, Ubuntu 16.04, Debian 10, Debian 9. Las versiones recientes que no sean LTS como Ubuntu 21.04, 20.10 y 21.10 también deberían ser compatibles.
-
Asegúrese de que Docker no esté instalado actualmente. La salida que indica que alguno de los paquetes no se encuentra se puede ignorar de forma segura.
sudo apt remove docker docker-engine docker.io
-
Instale los paquetes necesarios para configurar el repositorio de Docker:
sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
-
Agregue la clave GPG de Docker. En el siguiente comando, reemplaza
[url]
con la URL que corresponda con la distribución que está ejecutando su sistema.curl -fsSL [url]/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Ubuntu:
https://download.docker.com/linux/ubuntu
- Debian:
https://download.docker.com/linux/debian
- Ubuntu:
-
Agrega el estable Repositorio Docker, reemplazando nuevamente
[url]
con la URL que corresponda con la distribución que está ejecutando su sistema.echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [url] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
Instale Docker Engine y otros paquetes necesarios:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
Se pueden encontrar instrucciones de instalación adicionales para estas distribuciones en la documentación de Docker:
- Instalar Docker Engine en Ubuntu
- Instalar Docker Engine en Debian
Inicio y prueba de Docker
Después de instalar Docker Engine, inicie Docker y verifique que todo funcione ejecutando una imagen de prueba.
-
Asegúrese de que el servidor Docker se esté ejecutando.
sudo systemctl start docker
-
Opcionalmente, configure Docker para que se inicie cuando se inicie el servidor. Esto se recomienda si tiene la intención de ejecutar una aplicación de producción dentro de esta instalación de Docker.
sudo systemctl enable docker sudo systemctl enable containerd
-
Verifique que Docker esté instalado correctamente ejecutando la imagen "hello-world".
sudo docker run hello-world
Si tiene éxito, Docker debería descargar y ejecutar la imagen hello-world y generar un mensaje de éxito. Entre otro texto, la salida debe incluir un mensaje similar al siguiente:
Hello from Docker! This message shows that your installation appears to be working correctly.
Uso de Docker con un usuario no root
Por defecto, sudo
se requiere para ejecutar los comandos de Docker, pero un nuevo grupo, llamado docker , se creó durante la instalación. Cuando se inicia el demonio Docker, abre un socket Unix para el docker miembros del grupo.
Antes de continuar, asegúrese de tener una cuenta de usuario limitada que no pertenecen al grupo sudo. Si aún no ha creado una cuenta de usuario limitada, consulte las guías Configuración y protección de una instancia informática o Usuarios y grupos de Linux para obtener instrucciones.
-
Ingrese el siguiente comando para agregar un usuario a la docker grupo, reemplazando a [usuario] con el nombre de su cuenta de usuario limitada.
sudo usermod -aG docker [user]
-
Inicie sesión en el sistema como usuario limitado.
-
Verifique que el usuario limitado pueda ejecutar
docker
comandos sinsudo
ejecutando la imagen "hello-world" una vez más.docker run hello-world
La salida debe tener un mensaje de éxito similar al de la salida anterior.
Precaución El docker El grupo otorga privilegios similares a los del usuario root. Consulte la guía Docker Daemon Attack Surface en la documentación de Docker para obtener más información sobre cómo puede afectar la seguridad del sistema. Para ejecutar el demonio de Docker sin usar privilegios de root, siga las instrucciones dentro de Ejecute el demonio de Docker como usuario no root (modo sin raíz).
Resolver errores al cargar archivos de configuración
Si el usuario hubiera ejecutado sudo docker
comandos antes de unirse al grupo, es posible que se les presente un error al cargar el archivo de configuración, como este:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
El problema es que el directorio .docker en su directorio de inicio (~/.docker) se creó con permisos otorgados por sudo
.
Hay dos soluciones posibles:
-
Elimina el
.docker
directorio de su directorio de inicio. Docker lo volverá a crear automáticamente, pero se perderá cualquier configuración personalizada. -
Cambie los permisos en
.docker
directorio usando los comandos:sudo chown example_user:example_user /home/example_user/.docker -R sudo chmod g+rwx "/home/example_user/.docker" -R
Uso de imágenes de Docker para implementar contenedores
Las imágenes de Docker son plantillas que incluyen las instrucciones y especificaciones para crear un contenedor. Para usar Docker, primero debe obtener una imagen o crear una propia creando un archivo docker. Para obtener más información, consulte Introducción a Docker.
Listado de imágenes
Para enumerar todas las imágenes en su sistema, ejecute el siguiente comando. Esto debería generar el hello-world imagen que se utilizó en un paso anterior, así como cualquier imagen adicional que ya haya obtenido.
docker images
Encontrar una imagen
Las imágenes se almacenan en registros de Docker, como Docker Hub (registro oficial de Docker). Puede buscar imágenes en ese sitio web o usar el siguiente comando para buscar en el registro de Docker. En el siguiente comando, reemplace [keyword]
con las palabras clave que le gustaría buscar, como nginx o apache .
docker search [keyword]
Obtención de una imagen
Una vez que encuentre una imagen, descárguela a su servidor. En el siguiente comando, reemplaza [image]
con el nombre de la imagen que te gustaría usar.
docker pull [image]
Por ejemplo, para desplegar la imagen oficial de nginx, ejecute:docker pull nginx
.
Ejecutar una imagen
A continuación, cree un contenedor basado en la imagen utilizando docker run
dominio. Nuevamente, reemplace [image]
con el nombre de la imagen que te gustaría usar.
docker run [image]
Si la imagen aún no se ha descargado y está disponible en el registro de Docker, la imagen se bajará automáticamente a su servidor.
Administración de contenedores Docker
Listado de Contenedores
Para enumerar todos los contenedores Docker activos (e inactivos) que se ejecutan en su sistema, ejecute el siguiente comando:
docker ps -a
La salida debe parecerse a la siguiente. Esta salida de muestra muestra el hello-world
contenedor.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5039168328a5 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago magical_varahamihira
Inicio de un contenedor
Inicie un contenedor Docker con el siguiente comando, reemplazando [ID]
con el ID del contenedor correspondiente al contenedor que desea iniciar:
docker start [ID]
Detener un Contenedor
Detenga un contenedor Docker con el siguiente comando, reemplazando [ID]
con el ID del contenedor correspondiente al contenedor que desea detener:
docker stop [ID]
Algunas imágenes (como el hello-world
image) se detienen automáticamente después de ejecutarse. Sin embargo, muchos otros contenedores continúan ejecutándose hasta que se les ordena explícitamente que se detengan, y es posible que desee ejecutar estos contenedores en segundo plano. Para esos casos, este comando puede ser útil.
Eliminación de un contenedor
Elimine un contenedor Docker con el siguiente comando, reemplazando [ID]
con el ID del contenedor correspondiente al contenedor que desea eliminar:
docker rm [ID]
Más información
Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.
- Sitio web para Docker
- Documentación para Docker
- Sitio web para contenedores