lunes, 8 de julio de 2019

Comandos útiles en Docker


# docker run hello-world
Ejecuta un contenedor de imagen hello-world, si no exite la descarga y muestra un mensaje y finaliza.

# docker ps
Muestra contenedores en ejecucion.

# docker ps -a
Muestra todos los contrnedores, en ejecucion ó finalizados. Todos los ejecutados quedan en la maquina. Borrarlos con docker rm - f....

# docker images
Muestra imagenes de contenedores que tenemos descargadas.

# docker search centos
Busca en docker hub todas las imagenes que existen de centos.

# docker pull [nombre de imagen]
Descarga la imagen que elegimos en el docker search.

# docker run -ti debian /bin/bash
Ejecuta un contenedor de imagen debian, queda interactivo y abre un bash. Queda ejecutando un terminal.

Ctrl+d
Finaliza el contenedor interactivo que deje ejecutando y devuelve el prompt a la maquina host.
Ctrl+p+q
Deja el contenedor ejecutando en segundo plano y devuelve el prompt a la maquina host.

# docker run -it -d debian /bin/bash
Ejecuta el contenedor en background.

# docker attach [container-id]
Para conectarme a un container que esta ejecutando en background.

# docker create centos
Crea el contenedor pero no lo ejecuta.

# docker stats [container-id]
Permite ver recursos que consume el contenedor, cpu, mem, io de red, io de bloques, etc. En %

# docker top [container-id]
Muestra los procesos, pid, tty, etc, que esta ejecutando ese contenedor.

# docker logs -f [container-id]
Veo logs del contenedor.

# docker rm [container-id]
Elimina un contenedor que no esta en ejecucion.

# docker rm -f [container-id]
Elimina un contenedor aunque esté ejecutando.

# docker container ls -a -q
Lista todos los ID de los contenedores.

# docker rm $(docker container ls -a -q)
Elimina todos los containers.

# docker stop [container-id]
Para un contenedor.
# docker start [container-id]
Inicia un contenedor parado. Veo el id con docker ps -a

# docker pause [container-id]
Pausa el contenedor.

# docker unpause [container-id] 
Quita de la pausa al contenedor.

# docker run -it --name debiacito debian /bin/bash
Ejecuta un contenedor debian con nombre.

# docker inspect [container-id]
Ver detalles especificos del contenedor: memoria, ip, gateway, etc.

# docker inspect [container-id] | grep Memory
Vemos la memoria que tiene ese contenedor. El 0 indica que no tiene limite.

# docker run -d -it -m 128M debian /bin/bash
Ejecuta un debian con limite de memoria 128 Mb.

# docker update -m 256 [container-id] 
Modifica el limite de memoria de un contenedor en ejecución a 256 Mb

# docker run -it -d --cpu-shares 1024 debian /bin/bash
# docker run -it -d --cpu-shares 512 debian /bin/bash 
docker run -it -d --cpu-shares 512 debian /bin/bash
Ejecuta 3 contenedores debian con limite de CPU, uno usa el 50% y los otros dos 25% c/u.
# docker ps | awk '{ print $1 }' | grep -v CONTAINER | xargs docker inspect | grep CpuShares
Con esto veo los cpu compartidos de todas los contenedores en ejecución.

# docker update --cpu-shares 1024 [container-id]
Modifica el limite de cpu compartido de un contenedor en ejecución.

# docker run -it -p 8181:80 debian /bin/bash
Expone el puerto host 8181 al puerto 80 del contenedor. Es una especie de port forwarding.

# docker run -it -e VARIABLE=valor debian /bin/bash
Asi definimos una variable de entorno dentro.

# docker run -it -v /nombreVolumen debian /bin/bash
Crea un volumen en /nombreVolumen de la maquina host para compartir con el contenedor. Es una especie de NFS.

# docker run -it -v /volumenEnElHost:/VolumenEnElContainer debian /bin/bash
Especifica la ruta en host y no queda aleatoria como comando anterior.

# docker inspect -f {{.Mounts}} [container-id]
Ver donde mapea el volumen en el host y en el container.

# docker create -v /Users/hernantirado/Desktop/VolumenEnElHost:/volenelcontainer --name debiancompartido debian 
# docker run -ti --volumes-from debiancompartido --name debian01 debian 
# docker run -ti --volumes-from debiancompartido --name debian02 debian
Creamos 2 contenedores llamados debian01 y debian02 que usan el mismo volumen de /volCompartidoParaVarios



# docker run -it --restart=always --name debiancito debian:01
Si reinicio el host iniciara el contenedor tambien.



No hay comentarios: