GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Una breve introducción a Dockerfile

En esta breve guía, permítanme darles una breve introducción a Dockerfile y le enseñará cómo usarlo para automatizar el proceso de creación de imágenes de Docker personalizadas. Dockerfile no es más que un archivo de texto simple con instrucciones para crear una imagen acoplable. Contiene todos los comandos que un usuario podría llamar en la línea de comandos para crear una imagen. Podemos usar el dockerfile para crear nuestras propias imágenes personalizadas. Luego podemos compartir estas imágenes de Docker personalizadas a través de Docker Hub . Para aquellos que se preguntan, Docker Hub es un servicio de repositorio alojado proporcionado por Docker para buscar y compartir imágenes de contenedores con su equipo y, por supuesto, con cualquier persona en el mundo.

Imagina este escenario. Antes si queremos usar Jenkins , entonces necesitamos instalar Jenkins con muchos pasos involucrados. Gracias a Dockerhub, ahora podemos descargar y ejecutar la imagen de contenedor preconstruida de Jenkins en un par de minutos.

Imagen del contenedor de Jenkins en dockerhub

Para extraer la imagen de Jenkins de DockerHub, ejecute:

# docker pull Jenkins

Una vez que sacamos las imágenes de la ventana acoplable, podemos usarlas ejecutando la imagen usando el comando:

# docker run -it -d -p 8080:8080 jenkins

¡Es así de simple!

Para saber más sobre el uso de Docker, consulte la siguiente guía.

  • Primeros pasos con Docker

Hay más de 100 000 imágenes de contenedores de proveedores de software, proyectos de código abierto y la comunidad disponibles en Dockerhub. Puede buscar y descargar cualquier imagen de contenedor de su elección desde Dockerhub y comenzar a usarla inmediatamente como se muestra arriba.

Comprender el formato de Dockerfile

Docker puede crear imágenes automáticamente leyendo las instrucciones desde un Dockerfile.

Un Dockerfile típico contiene las siguientes instrucciones:

1. DE - Establecerá la imagen base del contenedor.

Ejemplo:

FROM ubuntu:18.04

Establecerá la imagen base del contenedor como Ubuntu. Si no se especifica la etiqueta 18.04, tomará una etiqueta como "más reciente".

2. ETIQUETA - Es un par clave-valor utilizado para especificar información de metadatos de la imagen.

Ejemplo:

LABEL ENV=”DEVELOPMENT”

3. CORRE - Se usa para ejecutar el comando en la imagen base y creará una nueva capa.

Ejemplo:

RUN apt-get update
RUN apt-get install tomcat

4. CMD - Se utiliza para configurar un comando para que se ejecute primero cuando se inicia el contenedor.

Ejemplo:

CMD [“java”, “-jar”, “app.jar”]

5. EXPONER - Expondrá el puerto para acceder al contenedor. El contenedor escuchará en este puerto de red. podemos acceder
la salida usando este puerto.

Ejemplo:

EXPOSE 8080

6. MANTENEDOR - Dará el detalle del autor que creó esta imagen de Docker.

Ejemplo:

MAINTAINER [email protected]

7. ENV - Se utiliza para establecer variables de entorno en el par clave-valor. Estas variables se establecen durante la creación de la imagen.
y están disponibles después de la creación del contenedor.

Ejemplo:

ENV DB_NAME=”MySQL”
ENV DB_VERSION=”8.0”

8. COPIAR - Se utiliza para copiar archivos locales al contenedor.

Ejemplo:

COPY /target/devops.jar devops.jar

9. AÑADIR - Funciona igual que la copia, pero tiene algunas funciones más, como que podemos extraer tar local y agregar una URL remota.

Ejemplo:

ADD devops.tar.xz / .
ADD http://example.com/abc.git /usr/local/devops/

10. PUNTO DE ENTRADA - Se utiliza para configurar el comando principal de la imagen. Funciona igual que la instrucción CMD. Él
La única diferencia entre CMD y ENTRYPOINT es que las instrucciones no se sobrescriben en ENTRYPOINT.

Ejemplo:

ENTRYPOINT [“java”, “-jar”, “app.jar”]

11. VOLUMEN - Creará un punto de montaje con el nombre especificado.

Ejemplo:

VOLUME /app/devops

12. USUARIO - Establecerá el nombre de usuario y el grupo de usuarios que se usarán al ejecutar la imagen.

Ejemplo:

USER dhruv
USER admin

13. DIR.TRABAJO - Establecerá el directorio de trabajo. Creará el directorio si no está presente.

Ejemplo:

WORKDIR /var/lib/

Aquí hay un Dockerfile de muestra para su referencia.

FROM ubuntu:latest
MAINTAINER Dhruv Tiwari "[email protected]"
RUN apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >>
/etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]

Permítame mostrarle un ejemplo simple para crear un Dockerfile de muestra y crear una imagen usándolo.

Crear un Dockerfile

Cree un archivo llamado Dockerfile , agregue el contenido en los archivos. En el siguiente ejemplo, estamos actualizando e instalando el vim y rizo .

# cat dockerfile
FROM alpine

RUN apk update
RUN apk add vim
RUN apk add curl

dockerfile para alpine

Ahora tenemos el Dockerfile en su lugar. Avancemos y construyamos una imagen usando Dockerfile.

Crear imagen usando Dockerfile

Para crear una imagen desde Dockerfile, simplemente ejecute:

# docker build -t devops .

Tenga en cuenta el punto (.) al final.

Según el comando anterior, Docker comenzará a crear imágenes automáticamente leyendo las instrucciones del Dockerfile. guardado en el directorio de trabajo actual.

Si el Dockerfile está guardado en otro lugar, puede mencionar su ruta usando -f marca como a continuación.

# docker build -f /path/to/a/Dockerfile .

Después de crear la imagen, podemos ejecutarla usando el comando:

# docker run -it devops

Así es como se pueden crear imágenes de contenedores personalizados utilizando Dockerfile. Espero que esto ayude. Solo hemos cubierto lo básico. Hay mucho más que puede hacer con Dockerfile. Te recomiendo consultar la referencia oficial de Dockerfile guía para aprender más al respecto.

Lectura sugerida:

  • Explicación de los conceptos de red de Docker
  • Explicación de los volúmenes de Docker con ejemplos
  • Cómo actualizar automáticamente los contenedores de Docker en ejecución
  • ctop:una herramienta de supervisión de línea de comandos para contenedores de Linux
  • Portainer:la forma más sencilla de administrar Docker
  • PiCluster:una sencilla aplicación de gestión de Docker basada en web
  • Dockly:administrar contenedores Docker desde la terminal

Sobre el autor:

Dhruv Tiwari es un ingeniero de DevOps al que le encanta automatizar cosas, trabajar con Linux a escala y sueña con el día en que los sistemas sean lo suficientemente inteligentes como para no tener que iniciar sesión en una caja de Linux. Viaje de CI/CD desde el código fuente hasta la implementación del código y la producción.


Docker
  1. ¿Extraer archivo de la imagen de Docker?

  2. Cómo usar un Dockerfile para crear una imagen de Docker

  3. Una introducción a Docker

  4. Cómo modificar imágenes de Docker

  5. Cómo crear una imagen de Docker a partir de un contenedor y un archivo Docker

Una breve introducción a Ansible Vault

¿Qué es un manifiesto de imagen de Docker?

Implementar una instalación de MariaDB de Docker de producción

Cómo reducir el tamaño de la imagen de Docker en los contenedores de Docker

Cómo crear una imagen Docker personalizada con Dockerfile

Compartir imágenes de Docker en Docker Hub