Docker es una tecnología de creación de contenedores que le permite crear, probar e implementar rápidamente aplicaciones como contenedores portátiles y autosuficientes que pueden ejecutarse prácticamente en cualquier lugar. Docker se ha convertido en el estándar de facto para la implementación de contenedores, y es una herramienta esencial para los ingenieros de DevOps y su proceso continuo de integración y entrega.
En este tutorial, cubriremos cómo instalar Docker en una máquina con Ubuntu 18.04 y exploraremos los conceptos y comandos básicos de Docker.
Requisitos previos #
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo. Todos los comandos de este tutorial deben ejecutarse como un usuario no root.
Instalando Docker en Ubuntu #
Aunque el paquete de instalación de Docker está disponible en el repositorio oficial de Ubuntu 18.04, es posible que no siempre sea la última versión. El enfoque recomendado es instalar el último paquete de Docker desde los repositorios de Docker.
Habilitando el repositorio de Docker #
-
Comience actualizando la lista de paquetes e instalando las dependencias necesarias para agregar un nuevo repositorio a través de HTTPS:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
Importe la clave GPG del repositorio usando el siguiente
curl
comando:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
Agregue el repositorio Docker APT a su sistema:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Instalando Docker CE #
Ahora que el repositorio de Docker está habilitado, puede instalar cualquier versión de Docker que necesite.
-
Para instalar la última versión de Docker, use el siguiente comando. Si desea instalar una versión específica de Docker, omita este paso y vaya al siguiente.
sudo apt update
sudo apt install docker-ce
-
Para instalar una versión específica, primero enumere las versiones disponibles en el repositorio de Docker:
apt list -a docker-ce
El comando imprime las versiones de Docker disponibles en la segunda columna.
docker-ce/bionic 5:18.09.7~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.6~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.5~3-0~ubuntu-bionic amd64
Por ejemplo, para instalar la versión
18.09.6
escribirías:sudo apt install docker-ce=5:18.09.6~3-0~ubuntu-bionic
Para evitar que el paquete de Docker se actualice automáticamente, márquelo como retenido:
sudo apt-mark hold docker-ce
Una vez completada la instalación, el servicio de Docker se iniciará automáticamente. Puede verificarlo escribiendo:
sudo systemctl status docker
La salida se verá así:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p
Active: active (running) since Tue 2019-07-02 11:28:40 UTC; 15min ago
Docs: https://docs.docker.com
Main PID: 11911 (dockerd)
Tasks: 10
CGroup: /system.slice/docker.service
Ejecutando el comando docker sin sudo #
De forma predeterminada, la ejecución de los comandos de Docker requiere privilegios de administrador.
Para ejecutar comandos de Docker como usuario no root sin anteponer sudo
necesita agregar su usuario a la docker
grupo. Este grupo se crea durante la instalación del paquete Docker CE. Para hacerlo, ejecute el siguiente comando:
sudo usermod -aG docker $USER
$USER
es una variable de entorno que contiene su nombre de usuario.
Cierre sesión y vuelva a iniciarla para actualizar la membresía del grupo.
Para verificar que Docker se haya instalado correctamente y que pueda ejecutar los comandos de Docker sin anteponer sudo
, ejecuta:
docker container run hello-world
El comando descargará una imagen de prueba, la ejecutará en un contenedor, imprimirá un mensaje de "Hola desde Docker" y saldrá. La salida debería tener el siguiente aspecto:
Actualizando Docker #
Cuando se lanza una nueva versión de Docker, puede actualizar el paquete mediante el proceso de actualización estándar:
sudo apt update
sudo apt upgrade
Desinstalando Docker #
Antes de desinstalar Docker, elimine todos los contenedores, imágenes, volúmenes y redes.
Puede desinstalar Docker como cualquier otro paquete instalado con apt
:
sudo apt purge docker-ce
sudo apt autoremove
Interfaz de línea de comandos de Docker #
El comando CLI de Docker toma esta forma:
docker [option] [subcommand] [arguments]
Para listar todos los comandos disponibles, escriba docker
sin parámetros:
docker
Si necesita más ayuda con cualquier [subcommand]
, puede utilizar --help
cambiar como se muestra a continuación:
docker [subcommand] --help
Imágenes de Docker #
Una imagen de Docker se compone de una serie de capas del sistema de archivos que representan instrucciones en el archivo Docker de la imagen que constituye una aplicación de software ejecutable. Una imagen es un archivo binario inmutable que incluye la aplicación y todas las demás dependencias, como bibliotecas, archivos binarios e instrucciones necesarias para ejecutar la aplicación.
Puede pensar en una imagen de Docker como una instantánea de un contenedor de Docker.
La mayoría de las imágenes de Docker están disponibles en Docker Hub. Docker Hub es un servicio de registro basado en la nube que, entre otras funcionalidades, se utiliza para mantener las imágenes de Docker en repositorios públicos o privados.
Buscar imagen de Docker #
Para buscar una imagen del registro de Docker Hub, use la search
subcomando.
Por ejemplo, para buscar una imagen de Ubuntu, escribiría:
docker search ubuntu
La salida debería verse así:
Como puede ver, la búsqueda imprime una tabla con cinco columnas, NAME
, DESCRIPTION
, STARS
, OFFICIAL
y AUTOMATED
.
La imagen oficial es una imagen que Docker desarrolla en conjunto con socios upstream.
La mayoría de las imágenes de Docker en Docker Hub están etiquetadas con números de versión. Cuando no se especifica ninguna etiqueta, Docker extraerá la última.
Descargar imagen de Docker #
Por ejemplo, para descargar la última versión oficial de la imagen de Ubuntu 18.04, usaría la siguiente image pull
comando:
docker image pull ubuntu
Dependiendo de su velocidad de Internet, la descarga puede tardar unos segundos o minutos.
Cuando no se especifica una etiqueta, Docker extrae la última imagen de Ubuntu, que en el momento de escribir este artículo es 18.04.
Si desea descargar una versión anterior de Ubuntu, digamos Ubuntu 16.04, entonces debe usar docker image pull ubuntu:16.04
.
Para enumerar todas las imágenes descargadas, escriba:
docker image ls
La salida se verá así:
Eliminar imagen de Docker #
Si por algún motivo desea eliminar una imagen, puede hacerlo con image rm [image_name]
subcomando:
docker image rm ubuntu
Contenedores Docker #
Una instancia de una imagen se llama contenedor. Un contenedor representa un tiempo de ejecución para una sola aplicación, proceso o servicio.
Puede que no sea la comparación más adecuada, pero si es programador, puede considerar una imagen de Docker como una clase y un contenedor de Docker como una instancia de una clase.
Podemos iniciar, detener, eliminar y administrar un contenedor con el docker container
subcomando.
Iniciar contenedor Docker #
El siguiente comando iniciará un contenedor Docker basado en la imagen de Ubuntu. Si no tiene la imagen localmente, la descargará primero:
docker container run ubuntu
A primera vista, puede parecerle que no pasó nada en absoluto. Bueno, eso no es cierto. El contenedor de Ubuntu se detiene inmediatamente después de iniciarse porque no tiene un proceso de ejecución prolongado y no proporcionamos ningún comando. El contenedor se inició, ejecutó un comando vacío y luego salió.
El interruptor -it
nos permite interactuar con el contenedor a través de la línea de comando. Para iniciar un tipo de contenedor interactivo:
docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#
Como puede ver en el resultado anterior, una vez que se inicia el contenedor, se cambia el símbolo del sistema. Esto significa que ahora está trabajando desde el interior del contenedor.
Lista de contenedores Docker #
Para enumerar contenedores activos, escriba:
docker container ls
Si no tiene ningún contenedor en ejecución, la salida estará vacía.
Para ver los contenedores activos e inactivos, pásele el -a
cambiar:
docker container ls -a
Eliminar contenedores Docker #
Para eliminar uno o más contenedores, copie el ID (o ID) del contenedor y péguelos después del container rm
subcomando:
docker container rm c55680af670c