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
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
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
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.
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.
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.
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.
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.
Ahora puedes ver todas las imágenes descargadas utilizando el comando:
docker images
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
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.
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.
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.