Diferencia entre revisiones de «Plantilla:DockerFile»

De WikiEducator
Saltar a: navegación, buscar
(=Creando los contenedores)
 
(Una revisión intermedia por el mismo usuario no mostrado)
Línea 1: Línea 1:
 +
===Creando los contenedores===
 +
*Para crear un contenedor personalizado, debemos de partir de una imagen y agregarle las utilidades (servicios, programas, ...)  que necesitemos
 +
*Tenemos miles de imágenes ya creadas, seguramente con nuestras necesidades, es cuestión de buscarlas en docker io, vamos a comentar algunas:
 +
;Ubuntu base
 +
*Podemos usar '''''ubuntu:latest''''', '''''ubuntu:20.04''''' o una versión muy ligera de ubuntu llamada '''''alpine''''' https://hub.docker.com/_/alpine
 +
{{Tip|Una imagen comprimida de Alpine está en torno a los 2 MB, mientras que una imagen comprimida de Ubuntu está entre 40 y 80 MB}}
 +
;Servidor web
 +
:Podemos usar httpd https://hub.docker.com/_/httpd
 +
;Servidor de php
 +
 +
 +
<br />
 
{{MRM_Web|Title= Referencias web|
 
{{MRM_Web|Title= Referencias web|
 
*https://www.kodetop.com/crea-tu-ambiente-de-desarrollo-php-mysql-con-docker/
 
*https://www.kodetop.com/crea-tu-ambiente-de-desarrollo-php-mysql-con-docker/
Línea 6: Línea 18:
 
}}
 
}}
 
<br />
 
<br />
+
 
===Dockfile===
+
===Dockerfile===
 
*https://docs.docker.com/engine/reference/builder/
 
*https://docs.docker.com/engine/reference/builder/
 
*Sacado de esta página  
 
*Sacado de esta página  
Línea 64: Línea 76:
 
<source lang=bash>
 
<source lang=bash>
 
#Ahora empezamos a instalar todos los paquetes necesarios
 
#Ahora empezamos a instalar todos los paquetes necesarios
 
#vim por ser un editor que me gusta
 
RUN apt-get intall -y vim
 
 
 
#gearman => Un demonio para ejecutar tareas pesadas de la aplicación web en background
 
 
RUN apt-get install -y gearman gearman-job-server gearman-tools libgearman-dev
 
 
 
 
# APC: Advanced PHP Cache
 
RUN apt-get install -y  php-apc
 
 
 
RUN echo "apc.enable_cli=1" >> /etc/php5/mods-available/apcu.ini
 
RUN echo "apc.enable=1" >> /etc/php5/mods-available/apcu.ini
 
RUN echo "extension=apcu.so" >> /etc/php5/mods-available/apcu.ini
 
 
</source>
 

Última revisión de 08:18 31 mar 2021

Creando los contenedores

  • Para crear un contenedor personalizado, debemos de partir de una imagen y agregarle las utilidades (servicios, programas, ...) que necesitemos
  • Tenemos miles de imágenes ya creadas, seguramente con nuestras necesidades, es cuestión de buscarlas en docker io, vamos a comentar algunas:
Ubuntu base
Icon present.gif
Tip: Una imagen comprimida de Alpine está en torno a los 2 MB, mientras que una imagen comprimida de Ubuntu está entre 40 y 80 MB


Servidor web
Podemos usar httpd https://hub.docker.com/_/httpd
Servidor de php






Dockerfile

  • https://docs.docker.com/engine/reference/builder/
  • Sacado de esta página
  • Es un fichero de texto, que me permite crear una imagen a partir de otra, y añadir una serie de comandos para instalar a esa imagen, aplicaciones, servicios, librerías diversas con el objetivo de construirme una imagen para lanzar un contenedor personalizado a mis necesidades.
  • Una vez creado el fichero, lo ejecutaremos y crearemos la imagen con el comando buld
  • Si el fichero está en el directorio actual, lo ejecutaremos con el comando punto
  • Para ejecutar la máquina ejecutamos
docker build .
Estructura del fichero
 # comentarios
 INSTRUCCIONES argumentos

En un fichero dockerfile tendremos dos tipos de líneas

  1. comentarios (líneas que empiezan por #)
  2. Sentencias líneas que tiene una instrucción con una serie de argumentos para ejecutarlas
    1. Por se recomienda poner las instrucciones en mayúsculas

Instrucciones

FROM
FROM <imagen>
FROM <imagen>:<tag>
FROM <imagen>@<digest>
  • Es la primera instrucción
  • Especifica la imagen base de la que parte la instalación que queremos hacer
  • En esta página puedes encontrar imágenes base de las cuales partir (hay miles)
  • En el FROM se puede especificar de forma opción el tag o digest (sirve para especificar la imagen, como por ejemplo la versión).
  • Lo primero que tenemos que especificar es la imagen de la que partimos instruccion FROM


Icon casestudy.gif

Ejemplo

;imagen en base a ubuntu 14.04
FROM ubuntu:14.04
;imagen en base a debian
FROM debian:stable



MAINTAINER
MAINTAINER <name>
  • Especifica el autor de la imagen y su correo

MAINTAINER Manuel Romero <ManuelRomeroMiguel@gmail.com>

RUN
RUN <command>
RUN ["ejecutable", "parametro1", "parametro2"]
  • Ejecuta cualquier comando en la imagen que estamos usando. El resultado de la ejecución se puede tomar para el siguiente paso en el dockfile, por ejemplo si ejecuto la instalación de apache, en el siguiente comando puedo contar que apache ya está instalado
  • Es un comando muy utilizado.
  • Si usamos apt-get install especificaremos el flag -y para que no haga falta que sea interactivo y tome la decisión por defecto
  • Añadimos a nuestro fichero las siguientes librerías
#Ahora empezamos a instalar todos los paquetes necesarios