Cómo crear un contenedor en Docker

En este artículo vamos a ver cómo empezar a usar Docker.

Para eso, accederemos al servidor por SSH con los credenciales facilitados en el correo de alta del servidor.

Una vez accedemos por terminal, ya podemos empezar a trabajar con Docker.

Veremos las diferencias entre los dos métodos sobre como crear un contenedor y ejemplos de uso: con docker run y con docker compose.

Docker Run

Es un comando que nos permite ejecutar contenedores de Docker de forma individual.

La configuración relacionada con el contenedor se especifica manualmente en el momento de ejecutar el comando. Es decir, se tienen que declarar todos los parámetros (que imagen usar, exposición de puertos, variables de entorno, etc.) en cada despliegue.

Este método es adecuado para casos simples, donde solo se necesita un contenedor, o bien algunos contenedores pero con funciones básicas.

Docker Compose

Este método nos permite ejecutar varios contenedores de una forma más estructura y automatizada. Para esto, se hace uso de un archivo YAML llamado docker-compose.yml.

Dentro de éste, definimos uno o varios contenedores a crear, junto sus configuraciones (imagen a usar, exposición de puertos, variables de entorno, etc.).

De esta manera, tenemos todo unificado en un solo archivo mediante el cual posteriormente, ejecutando un comando que veremos más adelante, desplegaremos todos nuestros contenedores con sus servicios de forma rápida y sencilla.

Cómo crear un contenedor con Docker Run

Vamos a ver un ejemplo práctico sobre cómo crear un contenedor con Apache.

Primero, descargamos la imagen oficial de Apache desde Docker Hub (repositorio público oficial):

docker pull httpd

Y a continuación solo sería ejecutar:

 

docker run -d \
  –name contenedor_apache \
  -p 80:80 \
  -v ./html:/usr/local/apache2/htdocs \
  httpd

En el código de arriba hemos definido el contenedor con el nombre de ‘contenedor_apache’, seguido del mapeo de puerto 80 del contenedor con el puerto 80 local del servidor. La ruta donde guardar los archivos del sitio web sería la carpeta html desde donde nos encontremos ubicados en el momento de ejecutar el comando y usando la imagen de Apache (httpd).

Cómo crear un contenedor con Docker Compose

Creamos un fichero llamado docker-compose.yml con el siguiente contenido:

 

 

version: ‘3’

services:
  apache:
    image: httpd:latest
    container_name: contenedor-apache
    ports:
      – “80:80”
    volumes:
      – ./html:/usr/local/apache2/htdocs
    restart: always

 

Guardamos y ejecutamos lo siguiente para crear el contenedor:

docker compose up -d

Con el parámetro ‘-d’ dejamos el contenedor corriendo en segundo plano (creando el demonio).

Con este método, a diferencia de Docker Run como ya comentamos, es que podemos definir varios servicios dentro del mismo .yml. Por ejemplo, un servicio de Apache, otro de MySQL, etc. Luego ejecutando el comando anterior de docker-compose up -d , levantaríamos todos los servicios en contenedores individuales. Para detener y eliminar el contenedor/es ejecutaríamos:

docker compose down

Para más información, puedes contactarnos haciendo click aquí.