Pequeño script para borrar todos los contenedores de Docker

Estándar

docker-friendsPersonalmente como Docker lo uso para infinidad de pruebas una de las cosas que más me pasa es dejarme 4 o 5 containers que ya no me sirven para nada, y quiero borrarlos todos a la fuerza y sin perder más de 2 segundos.

Es por ello que me hice esta mierda pequeño script para parar y borrar ipsofactos los containers y dejar el servidor limpio.

Si por lo menos a una persona le sirve me doy por satisfecho:

#!/bin/bash

echo “Parando todos los containers”
sleep 1
docker stop $(docker ps -a -q)
echo “Tienes 3 segundos para detener la ejecución del borrado”
sleep 4
docker rm $(docker ps -a -q)

lineas_comando=$(docker ps -a | wc -l)

if [ “$lineas_comando” -eq 1 ];
then
echo “Borrado correctamente”
else
echo “Algo ha ido mal porque siguen quedando contenedores”
fi
sleep 1
exit

Solucionando el bug del Telegram CLI tgl/structures.c:997: tglf_fetch_message_media_new: Assertion `0′ failed.

Estándar

tgAlgunos de vosotros seguro que está teniendo problemas con el Telegram para la consola de Linux desde que actualizaron sus versiones para soporte de .gif y otras opciones de multimedia nuevas.

El error en cuestión es el siguiente:

telegram-cli: tgl/structures.c:997: tglf_fetch_message_media_new: Assertion `0' failed.
SIGNAL received
htg/bin/telegram-cli(print_backtrace+0x2f)[0x46f84f]
tg/bin/telegram-cli(termination_signal_handler+0x64)[0x46f8e4]
/lib/x86_64-linux-gnu/libc.so.6(+0x352f0)[0x7ffb660062f0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7ffb66006267]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7ffb66007eca]
/lib/x86_64-linux-gnu/libc.so.6(+0x2e03d)[0x7ffb65fff03d]
/lib/x86_64-linux-gnu/libc.so.6(+0x2e0f2)[0x7ffb65fff0f2]
tg/bin/telegram-cli(tglf_fetch_message_media_new+0x266)[0x4a8d46]
tg/bin/telegram-cli[0x4ae0b9]
tg/bin/telegram-cli[0x4aed5e]
tg/bin/telegram-cli(bl_do_create_message_new+0x2c5)[0x4b0145]
tg/bin/telegram-cli(tglf_fetch_message_new+0x16b)[0x4a962b]
tg/bin/telegram-cli(tglf_fetch_alloc_message_new+0x3d)[0x4aafad]
tg/bin/telegram-cli[0x4a0355]
tg/bin/telegram-cli(tglq_query_result+0x10f)[0x499a3f]
tg/bin/telegram-cli[0x49384e]
tg/bin/telegram-cli[0x4b4d9b]
/usr/lib/x86_64-linux-gnu/libevent-2.0.so.5(event_base_loop+0x7fc)[0x7ffb679d9a0c]
tg/bin/telegram-cli(net_loop+0xa4)[0x470e34]
tg/bin/telegram-cli(loop+0x195)[0x472205]
tg/bin/telegram-cli(main+0x2d3)[0x46e103]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7ffb65ff1a40]
tg/bin/telegram-cli(_start+0x29)[0x46e219]

Y por ello no nos deja continuar usandolo.

Asíque para solucionarlo es bien secillo:

Leer más

Mostrar contenedores de Docker sin indicar sus puertos.

Estándar

docker-lego-whaleUn pequeño inconveniente a la hora de usar Docker es que las personas que quieran visualizar la aplicación (mediante navegador web) necesitan indicar el puerto haciendolo un poco “engorroso”.
Es por ello que vamos a ver como poder hacer esto usando VirtualHosts de Apache junto a ProxyPass.

Problema:

Suponemos que tenemos dos contenedores de docker corriendo un simple Apache, ambos contenedores localmente atienden en el puerto 80,
pero la maquina que se comunica con el exterior y la que nos atiende las peticiones está escuchando esos contenedores en el 20001 y 20002 es decir:

20001 –> 80 (ContainerApache1)
20002 –> 80 (ContainerApache2)

Nosotros para poder visualizar esos contenedores tendiamos que utilizar:

http://dominio.com:20001 y http://dominio.com:20002

Y para hacerlo más comodo podriamos hacer:

http://docker1.dominio.com y http://docker2.dominio.com
o
http://dominio1.com y http://dominio2.com

Solución:

Seguir leyendo

Instalación y gestión de Docker (I)

Estándar

docker-100388953-origLos  LXC o LinuX Containers se está poniendo de moda, y es un hecho que se refleja cada día mas.

Aunque hace ya tiempo que existe esta tecnología su gestión no era sencilla, y no ha sido hasta el proyecto opensource de Docker cuando de verdad ha salido a flote toda esta tecnología. Y  es  que es muy fácil con docker-engine poder virtualizar en cualquier sistema operativo cualquier aplicación que queramos desplegar.

Es por ello que a lo largo de estas semanas escriba unas pequeñas guiás de como usar e integrar Docker, como gestionar los contenedores, monitorización sobre el mismo y de la red junto con almacenamiento avanzado.

Así pues vamos manos a la obra:

1- Lo primero que haremos será comprobar nuestra versión del kernel, ya que puede haber incompatibilidades si usamos un kernel inferior a 3.10.

root@DockerNode:~# uname -r
3.13.0-24-generic

2- Importamos la clave GPG:

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Seguir Leyendo.