Comandos Docker I

Introducción a Docker hub

Empezamos con esta serie de artículos donde muestro los comandos principales en Docker.

En primer lugar, a través del enlace navegamos a la web del Docker hub.

Para entendernos, es un respositorio de imagenes Docker disponibles. Estas imagenes pueden proceder de fuentes oficiales, como por ejemplo, para el motor de Bases de datos Postgress, la imagen oficial será aquella que este mantenida por el proveedor oficial de Postgres. Esa misma imagen puede estar provista por otras entidades de mayor o menor entidad en matería de fiabilidad y acreditación. Por ejemplo como se puede mostrar en la imagen, si tecleamos en el buscador de Docker hub, postgres, la primera en aparecer del listado es la oficial, aunque posteriormente, entidades de sobrada solvencia, como bitnami (proveedor de imagenes empaquetadas), ó vmware (proveedor de virtualización), pueden proveer dicho motor de BBDD.

En el caso que nos ocupa a continuación vamos a practiar los comandos básicos de Docker con una imagen de Debian,

Hacemos clic en la imagen oficial, de Docker hub, y vemos todas sus instrucciones para dokerizar,

Tenemos dos pestañas disponibles –> Overview, donde se muestran detalles de la imagen Debian, y Tags donde muestra las versiones disponibles de la imagen. Dicho esto, comencemos a jugar con los comandos básicos:

Vemos como en la pestaña tags, además tenemos acceso a otras versiones,

Vemos que para descargar la image se usa el comando docker pull, veamos como descargar la imagen de debian a continuación.

Descargar la imagen

docker pull debian

Observamos como al haber puesto debian de manera genérica, docker lo que hace es descargar la última versión reciente,

Si quisieramos descargar alguna versión concreta, basta con ir al apartado tags, y podremos descargar entre las que están disponibles,

Con esto lo que hacemos es descargar la imagen del Docker hub, y se almacena localmente. De este modo si listamos las imagenes de Docker veremos como se muestra dicha imagen.

Listar las imagenes locales

docker image ls

Vemos como se muestra en el listado la imagen Debian recien descargada, con su nombre, id de la imagen, fecha de creación, y tamaño en MB.

Eliminar imagen

Para eliminar cualquier imagen usamos el siguiente comando

#sudo docker rmi <nombre_imagen>

sudo docker rmi debian

Arrancar contenedor de la imagen recién descargada

A continuación tecleamos el siguiente comando para arrancar el contenedor de la imagen Debian que hemos creador con Docker, ¡ojo!, la orden -it indica que lo arrancamos en primer plano, y que nos arranca a la vez el terminal debian, por lo tanto, abandonamos el terminal anfitrión, para entrar en el terminal de Debian,

sudo docker run -it debian

A continuación observamos como el shell ya está dentro del Debian recien creado, y podremos navegar en el, o hacer cualquier operación,

Para salir del debian creado, basta con escribir exit, y volvemos al s.o anfitrión,

Ahora vamos a ver como arrancar debian en segundo plano añadiendo la orden -d (de este modo seguimos teniendo el control de el terminal anfitrión), luego le damos un nombŕe al contenedor con la orden –name, además de la orden sleep 1000 la cual se encarga de mantener en marcha el contenedor durante mil segundos. Ojo, si no le añadimos la orden sleep, al listar el contenedor saldrá como exited (no en marcha), debido a que como no se está ejecutando ningún proceso en el contenedor no aparece arrancado.

docker run -d --name testing-debian debian sleep 1000

Listando contenedores

De este modo si listamos los contenedores, docker ps -a aparecerá como up,

docker ps -a

Nombrar y renombrar contenedores

Para nombrar un contenedor en el arranque, usamos la sentencia siguiente:

#docker run -d --name <nombre_elegido> debian


docker run -d --name testing-debian debian  

Para renombrar,

# docker rename <CONTAINER_ID> nuevo-nombre

docker rename 64 renombrando-debian  

Podemos observar como podemos usar el primero o los primeros dígitos del container id, y de este modo también docker lo reconoce, para renombrarlo,

Fíjense, como usando solo los dos primeros digitos del contenedor que queremos renombrar (64 para distnguir del anterior ya que también empieza por 6), se reconoce el docker.

Pausar, parar, iniciar y reiniciar contenedores

Los comandos a usar son:

##PAUSAR
#
# docker pause <nombre ó id del contenedor>

docker pause renombrando-debian
## QUITAR PAUSA
#
# docker unpause <nombre ó id del contenedor>

docker unpause 64 
##PARAR
# docker stop <nombre ó id del contenedor>

docker stop 
##INICIAR
# docker start <nombre ó id del contenedor>

docker start renombrando-debian
##REINCIAR
# docker restart <nombre o id del contenedor>

docker restart 64

Copiar un archivo desde el host al docker

Veamos como copiar un archivo desde el equipo host al docker,

## En primer creo un archivo

touch archivoCopiado.txt 

# A continuación hacemos la copia hacia el docker

#docker cp archivoCopiado.txt <nombre ó id del contenedor>

docker cp archivoCopiado.txt renombrando-debian

#Para comprobar que se ha copiado hay que ejecutar el contenedor con el comando:
#Primero comprobamos que este iniciado con docker ps -a, de no estarlo,

docker start renombrando-debian

#luego entramos en la shell de debian,

docker exec -it renombrando-debian bash

# Y una vez veamos la shell de debian tecleamos 

ls 

# Y ya podremos ver el archivo copiado 

Para copiar a la inversa, osea desde el docker, creamos otro archivo en debian, llamado OtroArchivoCopiado.txt, y luego salimos del contenedor Debian con el comando exit, posteriormente tecleamos lo siguiente:

# docker cp <nombre del contenedor>:OtroArchivoCopiado.txt /ruta a copiar

docker cp renombrando-debian:OtroArchivoCopiado.txt /home

Luego vamos hacia el directorio /home y aparecera OtroArchivoCopiado.txt,

Eliminar contenedores

Usaremos el siguiente comando:

#docker rm <nombre ó id del contenedor>

docker rm renombrando-debian