Este artículo contiene una recopilación de principios y Comandos básicos en Docker que permitirán realizar las acciones más comunes de administración y gestión de contenedores, así mismo, crear, y manipular imágenes, contenedores y utilizar las fuentes oficiales para descargar imágenes preconfiguradas.

Si quiere aprender a programar un buen lugar para empezar es este: Historia Funcionamiento y Características

1. ¿Qué es Docker?

Docker es una popular aplicación para correr contenedores super livianos en nuestra máquina, en muchos sentidos se asemeja a una máquina virtual con la principal diferencia que en Docker los contenedores suelen ser muy livianos lo cual nos permite tener incluso varios corriendo simultaneamente.

Estas máquinas virtuales se crean a partir de imágenes que corresponden a sistemas operativos y comandos que permiten configurar el sistema operativo con las aplicaciones y paquetes que necesitaremos, por razones de desempeño y tamaño se suele utilizar Linux en alguna de sus distribuciones.

Otro aspecto importante es que Docker permite la configuración a nivel de detalle de los contenedores, en este sentido permite cambiar los tamaños de los discos, las configuraciones de la red e incluso monitorear las máquinas, además de que todo lo anterior se puede hacer con código habilitando el escalamiento vertical.

2. DockerFile

Si quieres descargar imágenes oficiales preconfiguradas de software popular puedes utilizar el siguiente enlace

Hub Docker

Para crear tus propias imágenes puedes crear un archivo llamado Dockerfile con un contenido similar al del siguiente código. Observa que es necesario parámetros como -y, ya que no tendremos la posibilidad de interactuar con la consola.

FROM ubuntu

RUN apt install apache2 -y

Luego puedes construir la imagen usando el siguiente comando, estará disponible para crear contenedores como se indicará posteriormente. Observa que el directorio actual debe contener el archivo Dockerfile y además puedes personalizar el nombre de la imagen.

docker build --tag httpd-ubuntu .

Alternativamente, se puede descargar la imagen preconfigurada de un servidor http usando el siguiente comando. Link de la imagen httpd. Es importante anotar que las imágenes se pueden versiona y cuando descargamos una sin versión estaremos descargando la etiquetada como latest.

docker pull htttp

Un archivo Dockerfile completo tiene las siguiente secciones, cada uno de ellos comandos para acciones especificas, por ejemplo FROM especifica la imagen a usar y RUN ejecuta un comando, tal como se vio en el código anterior.

Comments
FROM
CMD
ENTRYPOINT
WORKDIR
ENV
COPY
LABEL
RUN
ADD
.dockerignore
ARG
EXPOSE
USER
VOLUME

3. Imágenes

Las imágenes de docker pueden ser descargadas desde las fuentes oficiales como se mostró anteriormente o construidas, en cualquier caso la manipulación de las mismas se realiza con los siguientes comandos.

docker images
docker rmi image_name:version
docker -f dangling=true

4. Contenedores

Una vez contamos con imágenes descargadas las podemos poner a correr en contenedores o pequeñas máquinas virtuales que emulan nuestro software, el siguiente comando permite verificar los contenedores que están corriendo, algunas opciones como -a muestran todos los contenedores incluso los detenidos.

docker ps

Algunos otros comandos como los listados a continuación permiten: renombrar contenedores, detener un contenedor, iniciar un contenedor, reiniciar un contenedor, abrir una consola del contenedor, respectivamente.

docker rename old_name new_name
docker stop id
docker start id
docker restart id
docker exec -u root -ti container_name bash

Las imágenes se pueden poner a correr, con lo cual se crea un contenedor, usando un comando como el siguiente que especifica puertos y volúmenes, es decir el mapeo de puertos y volúmenes desde el contenedor hacia la máquina host. Las opciones completas del comando se encuentran aquí.

docker run -d --name image_name -p hostport:containerport -e "envirment_variables_assing" -v volhost:volcontainer

5. Volúmenes

Los siguientes comandos permiten verificar los volúmenes y administrarlos

docker volumen ls
docker volumen ls -f dangling=true
docker volumen rm id

6. Red

Los siguientes comandos permiten administrar las configuraciones de red de los contenedores.

docker network ls
docker network create -d bridge --subnet ip/mask --gateway ip name
docker network inspect name

7. Artículos de Interés