[Docker] Comandos Útiles
Siguiendo con la dinámica del anterior post de Docker, voy a describir algunos comandos útiles que cuando comenzamos a usar contenedores nos van a ayudar a entenderlos y aprovechar mejor sus virtudes.
Contenedor Interactivo
La mejor forma de ver esto es con alguna distribución, por ejemplo Ubuntu. Lo que hacemos es crear un contenedor basado en Ubuntu y entrar dentro del mismo (opción -i). Además sacamos por pantalla la salida del contenedor (-t):
docker run -it ubuntu
# Entramos al contenedor y lanzamos bash
docker run -it ubuntu bash
Para salir del contenedor solo hay que ejecutar exit, lo cual también parará el propio contenedor.
OjO! Cada vez que ejecutamos un docker run estamos creando un contenedor nuevo. Dado que al hacer exit lo hemos parado, podemos volver a usarlo con docker start -i <ID o nombre del contenedor>.
Borrar contenedor al paralo
Si le pasamos el parámetro --rm borrará el contenedor una vez lo hayamos parado:
docker run -it --rm --name docker_ubuntu ubuntu
Este comando arranca un contenedor interactivo de la imagen de ubuntu con el nombre docker_ubuntu, y además lo borrará una vez lo paremos.
Contenedor en Background/Segundo Plano
Arrancamos un contenedor (e.g. de php) y lo dejamos en segundo plano para no tener abierta la terminal:
docker run -d php
Darle un Nombre al Contenedor
Para no tener que estar mirando el ID o el nombre random que le da Docker a los contenedores cada vez que creamos uno, vamos a pasarle la opción --name al crearlo:
docker run -it --name docker_ubuntu ubuntu
Ejecutar Comandos
Teniendo un contenedor en background, por ejemplo un Ubuntu, le podemos pasar comandos con:
docker exec docker_ubuntu echo Hola Mundo
La sintaxis sería: docker exec <ID o nombre contenedor> <Comando a ejecutar>.
Hay contenedores que su modo interactivo es entrar a un intérprete de comandos (php, python, etc.), y en caso de que quisieramos hacer algún cambio en los mismo podemos usar exec. Suponiendo que tenemos un contenedor de php corriendo (docker run -it --name docker_php php):
docker exec -it docker_php bash
Con estos comandos ya podemos jugar mejor y comprender como funcionan los contenedores además de aprovecharlos no solo para correr un microservicio o un framework.