Docker: Instalación y uso básico en Ubuntu

Docker es un proyecto de código abierto que proporciona una plataforma abierta para que desarrolladores y administradores de sistemas creen, empaqueten y ejecuten aplicaciones en cualquier lugar como un contenedor ligero. Docker automatiza el despliegue de aplicaciones dentro de contenedores de software. El desarrollo de Docker fue iniciado por Solomon Hykes como un proyecto interno de dotCloud, una PaaS (plataforma como servicio) empresarial, pero ahora el software es mantenido por la comunidad Docker y Docker Inc. Puedes encontrar más información sobre Docker en la documentación aquí https://docs.docker.com/.

Docker requiere una arquitectura de 64 bits para su instalación y el Kernel de Linux debe ser 3.10 o posterior. Aquí utilizaré Ubuntu Linux.

Cosas que debes saber sobre Docker

Aquí los términos básicos del mundo Docker que debes conocer.

Imágenes Docker

Una imagen Docker es la plantilla básica de un contenedor Docker. Una imagen suele contener el sistema operativo y las aplicaciones que se instalan fácilmente. La imagen Docker se utiliza para ejecutar el contenedor, puedes encontrar muchas imágenes con una variedad de sistemas operativos y software que se ha instalado en el Docker Hub https://hub.docker.com/. También puedes crear tus propias imágenes Docker utilizando un archivo Dockerfile.

Contenedor Docker

Docker Container es una imagen en la que se puede leer y escribir que se ejecuta sobre la imagen Docker. Docker utiliza el sistema de archivos de unión como backend para el contenedor; cualquier cambio que se realice en el contenedor se guardará en una nueva capa por encima de la imagen base. El contenedor es la capa donde instalamos las aplicaciones. Cada contenedor se ejecuta aislado en la máquina anfitriona y, por tanto, proporciona una plataforma de aplicaciones segura.

Registro Docker

El registro Docker es un repositorio de imágenes Docker. Proporciona repositorios públicos y privados. El registro Docker público se llama Docker Hub. Aquí podemos subir y bajar nuestras propias imágenes.

Instalar Docker en Ubuntu 18.04

En esta sección, se te guiará para instalar Docker. Antes de instalarlo, comprueba la versión del kernel y la arquitectura del sistema operativo. Los siguientes comandos deben ejecutarse como usuario root. Ejecuta este comando para convertirte en root en tu sistema Ubuntu.

sudo su

A continuación, ejecuta uname -a para comprobar la versión del núcleo Linux que se está ejecutando actualmente.

uname -a

Comprueba la versión del Kernel de Ubuntu

Puedes ver que estoy utilizando la versión 4.15.0 del kernel con un kernel de 64 bits (x86_64).

Para comprobar la versión de Ubuntu, ejecuta

cat /etc/lsb-release

Comprueba la versión actual de Ubuntu

El comando muestra que la versión de Ubuntu es la 18.04.

Se recomienda actualizar Ubuntu antes de instalar nuevo software. Ejecuta el siguiente comando para obtener las últimas actualizaciones del repositorio de Ubuntu e instalarlas.

sudo apt-get update
sudo apt-get upgrade

Ahora estamos listos para instalar Docker en el servidor.

Para instalar Docker, podemos utilizar los paquetes del ‘Repositorio de Ubuntu’ o utilizar paquetes del ‘Repositorio de Docker’.

Instalar Docker desde el Repositorio de Ubuntu

Si quieres instalar la versión de Docker desde el repositorio de Ubuntu, puedes ejecutar el siguiente comando apt.

sudo apt install docker.io

Espera a que se complete la instalación, entonces podrás iniciar Docker y añadirlo al arranque con el comando systemctl:

systemctl start docker
systemctl enable docker

También puedes comprobar la versión de docker:

docker --version

Iniciar docker

Y obtendrás el docker 17.12 instalado desde el Repositorio de Ubuntu.

Instalar Docker desde el Repositorio Docker

Antes de instalar docker-ce desde el repositorio Docker, instala algunas dependencias utilizando el comando apt como se muestra a continuación.

sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Una vez completada la instalación, añade la clave docker y el repositorio docker ‘nightly

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic nightly" > /etc/apt/sources.list.d/docker-nightly.list

y actualiza el repositorio.

sudo apt update

Ahora el repositorio docker se ha añadido al sistema.

Comprueba todos los paquetes docker proporcionados por el repositorio docker utilizando el comando apt-cache.

sudo apt search docker-ce
sudo apt-cache policy docker-ce

Y verás diferentes versiones de docker como se indica a continuación.

Instalar Docker en Ubuntu

Instálalo utilizando el siguiente comando apt.

sudo apt install docker-ce

Una vez completada la instalación, inicia el servicio docker y habilítalo para que se inicie cada vez que arranque el sistema.

systemctl start docker
systemctl enable docker

Ahora comprueba la versión de docker instalada en el sistema.

docker --version

Y obtendrás la docker 18.x instalada en el sistema. Ahora puedes empezar a crear un contenedor descargando una Imagen Docker del Registro Docker.

Iniciar la versión docker instalada

Ejecutar Docker como usuario no root

Para ejecutar docker como un usuario normal/no root, necesitamos añadir un nuevo usuario al sistema. Añadiremos un nuevo usuario llamado ‘hakase’, y luego lo añadiremos al grupo ‘docker’.

Añade el usuario ‘hakase’.

useradd -m -s /bin/bash hakase
passwd hakase

Añade el uso ‘hakase’ al grupo ‘docker’.

usermod -aG docker hakase

Ahora inicia sesión como usuario ‘hakase’ y ejecuta el comando docker.

su - hakase
docker run hello-world

Y obtendrás el hola mundo de docker.

Ejecutar contenedor docker

Uso básico de Docker

En esta sección, te mostraré las opciones más utilizadas del comando docker. Por ejemplo, cómo descargar una imagen docker, crear un contenedor y cómo acceder al contenedor.

Para crear un nuevo contenedor, debes empezar por elegir una imagen base con el SO, por ejemplo ubuntu o centos u otro. Puedes buscar una imagen base con el comando docker search:

docker search ubuntu

Este comando te mostrará todas las imágenes de ubuntu. Puedes probar por ti mismo docker search centos etc.

Buscar imagen docker

Ahora es el momento de descargar la imagen base a nuestro servidor, utiliza el comando

docker pull ubuntu

El comando docker pull image-name descargará una imagen a tu servidor desde docker registry/DockerHub.

Extraer imagen docker

Ahora puedes ver todas las imágenes descargadas utilizando el comando:

docker images

Listar imágenes docker

La imagen de Ubuntu se descargó de DockerHub/Registro Docker. El siguiente paso es crear un contenedor a partir de esa imagen.

Para crear el contenedor, puedes utilizar docker create o docker run.

docker create ubuntu:18.04

Crear contenedor docker

El comando docker create creará un nuevo contenedor pero no lo iniciará. Así que ahora puedes utilizar el comando ejecutar:

docker run -i -t ubuntu:18.04 /bin/bash

Este comando creará y ejecutará un contenedor basado en la imagen ubuntu 18.04 y ejecutará un comando /bin/bash dentro del contenedor, estarás automáticamente dentro del contenedor después de ejecutar el comando.

Ejecutar contenedor docker

El contenedor se detendrá cuando lo abandones con el comando exit. Si quieres tener un contenedor que se ejecute en segundo plano, sólo tienes que añadir la opción -d en el comando.

docker run -i -t -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

Nota:

/bin/sh -c «while true; do echo hello world; sleep 1; done» esto es un script bash para hacer eco de «hello word» para siempre.

Contenedor Docker ejecutado correctamente

Ahora puedes ver el contenedor ejecutándose en segundo plano utilizando el siguiente comando:

docker ps

o si quieres ver el resultado de los logs de ese comando bash puedes utilizar el comando:

docker logs NAMES/ContainerID

¿Cómo puedo acceder al shell del contenedor que se ejecuta en segundo plano?

Este comando te conectará al shell del contenedor:

docker exec -i -t NAMES/ContainerID /bin/bash

Entra en un contenedor Docker en ejecución.

Puedes ver que el nombre de host y el ID del contenedor son iguales, esto significa que estás dentro del shell del contenedor. Cuando escribas `exit` en ese shell saldrás de ese shell pero el contenedor seguirá en ejecución.

Otro comando que utilizarás a menudo es

docker stop NAME/ContainerID

Esto detendrá el contenedor sin borrarlo, para que puedas volver a iniciarlo con el comando:

docker start NAME/ContainerID

Si quieres eliminar el contenedor, detenlo primero y luego elimínalo con el comando:

docker rm NAME/ContainerID

Esto es sólo una breve introducción sobre la instalación y el uso básico de Docker en Ubuntu, puedes encontrar la página de documentación detallada de Docker aquí.

Puedes encontrar una introducción en profundidad a Docker en esta serie de tutoriales de Howtoforge: https://www.howtoforge.com/tutorial/how-to-use-docker-introduction/

Conclusión

Docker es una plataforma de virtualización de contenedores de código abierto que ayuda a los desarrolladores a desplegar sus aplicaciones y a los administradores de sistemas a gestionar aplicaciones en un entorno seguro de contenedores virtuales. Docker se ejecuta en la arquitectura Intel / AMD de 64 bits y el kernel debe ser superior a la versión 3.10. Con Docker, puedes construir y ejecutar tu aplicación dentro de un contenedor y luego mover tus contenedores a otras máquinas que ejecuten Docker sin preocupaciones.

También te podría gustar...