Hola mundo en Docker

Author
Por Darío Rivera
Publicado el en Docker

En un anterior post hemos visto cómo instalar docker y a su vez correr el primer contenedor hola-mundo. Sin embargo, este primer ejemplo puede resultar algo confuso para una persona que recién inicia en docker. Por esto, el día de hoy veremos un "Hola Mundo" un poco diferente pero que representa un poco maś la escencia de docker.

En este ejemplo, utilizaremos un Dockerfile ya que es la manera más común que vas a ver en un entorno profesional de correr un contenedor de docker basado en una imagen.

Crear el Dockerfile

Todo contenedor en docker se inicia con un Dockerfile el cual define qué sucede dentro del entorno del contenedor. Debes crear una carpeta para este proyecto y dentro de esta carpeta debes crear el archivo Dockerfile y pegar el siguiente contenido en él.

FROM httpd:2.4

COPY ./html/ /usr/local/apache2/htdocs/

Como puedes ver es extremadamente sencillo, la primera línea de este archivo nos dice que el contenedor será una instancia de la imagen httpd:2.4, la cuál viene con apache instalado. La tercera línea realiza un copiado de todo lo que tengamos en la carpeta html a /usr/local/apache2/htdocs. Para que esto funcione de manera correcta también deberás crear la carpeta html dento del directorio del proyecto. Finalmente nuestro hola mundo irá en el archivo index.html dentro de esta última carpeta.

mkdir html
echo "<h2>Hola mundo</h2>" > html/index.html

Crear la imagen

Necesitamos crear nuestra propia imagen que estará basada por supuesto en httpd tal y como lo especifíca nuestro Dockerfile. Para esto debemos ejecutar el siguiente comando:

docker build --tag=holamundo .

El parámetro en --tag hace referencia al nombre con el cual se creará nuestra imagen.

Correr una instancia

Lo último que resta es correr una instancia de nuestra imagen, es decir, crear un contenedor. Para esto, vamos a mapear el puerto 80 del contendor hacia el 8080 de nuestro equipo.

docker run -p 8080:80 holamundo

Si todo ha salido bien podríamos acceder a la URL http://0.0.0.0:8080/ y ver como resultado un Hola mundo en el navegador.

Para finalizar, te dejo estos dos comandos básicos de docker que te ayudarán a saber qué imagenes y contenedores existen en tu host.

$ docker image ls
REPOSITORY    TAG       IMAGE ID        CREATED           SIZE
holamundo     latest    eb11397e547a    30 minutes ago    154MB
$ docker container ls
CONTAINER ID   IMAGE       COMMAND              CREATED           STATUS           PORTS                  NAMES
f54c000c919d   holamundo   "httpd-foreground"   33 minutes ago    Up 33 minutes    0.0.0.0:8081->80/tcp   hardcore_lamport

Hasta la próxima!.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.