Docker es una herramienta de gestión de plataforma abierta para contenedores de Linux. Proporciona un medio para que los desarrolladores y administradores de sistemas creen y empaqueten aplicaciones en contenedores ligeros. Docker consta de los siguientes componentes:
- Motor acoplable – Una herramienta de empaquetado y tiempo de ejecución portátil y ligera
- Docker Hub – Un servicio en la nube para compartir aplicaciones y automatizar flujos de trabajo
Docker se utiliza para crear contenedores de aplicaciones basados en imágenes. Los contenedores basados en imágenes empaquetan una aplicación con la pila de tiempo de ejecución individual en un solo contenedor. Esto hace que el contenedor sea independiente del sistema operativo host y la versión del kernel. Como resultado, puede ejecutar la misma aplicación, sin cambios, en computadoras portátiles, máquinas virtuales de centros de datos y cualquier nube. Puede transferir este contenedor a otra máquina que ejecute Docker y ejecutar la aplicación sin ningún problema de compatibilidad.
Crear una imagen a partir de un contenedor
Puede guardar el estado actual de un contenedor como una nueva imagen mediante el “docker commit " dominio. Esto es útil si ha modificado un contenedor y desea confirmar los cambios en una nueva imagen para su uso posterior.
El ejemplo de la diapositiva crea un nuevo contenedor llamado "geeklab" a partir de la imagen de centos:7 y ejecuta el comando bash shell en el contenedor.
# docker run -i -t --name geeklab centos:7 /bin/bash [root@873abc18f59d /]#
Desde dentro del contenedor, el comando yum se usa para instalar el paquete httpd.
[root@873abc18f59d /]# yum install httpd
Utilice el comando de salida para detener un contenedor en ejecución.
[root@873abc18f59d /]# exit exit
El comando "docker commit" guarda los cambios en una nueva imagen. Utilice la opción -m para proporcionar un mensaje que describa los cambios. Usa el -a opción para proporcionar información del autor. Proporcione el ID del contenedor o el nombre del contenedor, el nombre de la imagen y una etiqueta. Ejemplo:
# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1 sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd
La salida del comando Docker Images ahora incluye la nueva imagen.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7/httpd v1 b3c42dd36e24 20 seconds ago 334 MB
Crear una imagen desde un Dockerfile
Use el comando de compilación docker para crear una nueva imagen a partir de las instrucciones contenidas en un archivo llamado "Dockerfile “. El formato del Dockerfile es:
# Comment INSTRUCTION arguments
La instrucción no distingue entre mayúsculas y minúsculas, pero la convención es escribir en mayúscula la instrucción para distinguirla de los argumentos. Docker ejecuta las instrucciones en un Dockerfile en orden. Construyes una nueva imagen a partir de una imagen base. La primera instrucción es FROM y especifica la imagen base a usar. Ejemplo:
FROM centos:7
Utilice la instrucción RUN para especificar los comandos que se ejecutarán en una nueva capa encima de la imagen actual y confirme los resultados. Ejemplo:
RUN yum –y install httpd
La instrucción ENTRYPOINT especifica el comando que ejecuta el contenedor creado a partir de la imagen. Ejemplo:
ENTRYPOINT /usr/sbin/httpd –D FOREGROUND
Consulte la página del manual de dockerfile para obtener una descripción de todas las instrucciones. La siguiente URL también proporciona descripciones, usos y ejemplos de todas las instrucciones de Dockerfile disponibles:https://docs.docker.com/reference/builder/.
Guardar y cargar una imagen o un contenedor
Puede crear archivos tar de imágenes y contenedores para usar en sistemas que no tienen acceso a Docker Hub. Utilice la opción "docker save Comando para guardar imágenes en un archivo tar. Puede guardar todas las imágenes en un repositorio en un archivo tar o guardar una imagen específica en un archivo tar. Cree el archivo tar redirigiendo STDOUT a un archivo tar o use la opción -o para especificar un nombre de archivo tar de salida.
El siguiente ejemplo redirige STDOUT para guardar todas las imágenes en el repositorio de centos a centos-all.tar:
# docker save centos > centos-all.tar
El siguiente ejemplo guarda la imagen centos:latest en el archivo centos-lates.tar.
# docker save -o=centos-latest.tar centos:latest
Utilice el comando docker load para cargar una imagen desde un archivo tar a un repositorio local de Docker. El siguiente ejemplo carga las imágenes del archivo centos-all.tar:
# docker load --input centos-all.tarGuía para principiantes del mundo Docker