Me encontré con algunas problemáticas pequeñas en la instalación del balanceador HAProxy, así que decidí documentarlas para que no me vuelva a pasar esto.

1.- Instalar con apt:

sudo apt-get install haproxy

2.- Activar el servicio agregando la siguiente linea en el archivo /etc/default/haproxy:

ENABLED=1

3.- Dejar el archivo /etc/haproxy/haproxy.cfg de la siguiente manera:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http


listen nodejs
    bind 0.0.0.0:9999
    mode http
    stats enable
    stats uri /haproxy?stats
    stats realm Strictly\ Private
    stats auth admin:hardToGuess
    stats auth ubuntu:veryHardToGuess
    balance roundrobin
    option httpclose
    option forwardfor
    server first-server 172.17.0.2:3333 check
    server second-server 172.17.0.3:3333 check

4.- Reiniciar el servicio:

sudo service haproxy restart

Si en efecto, tienes levantados dos servidores (172.17.0.2 y 172.17.0.3) y expones servicios en sus respectivos puertos 3333, podrás verlos en acción en la IP de tu máquina con HAProxy y puerto 9999.

Como dato interesante, si vas a: http://localhost:9999/haproxy?stats y te firmas como “admin” con password “hardToGuess”, podrás ver la página de estadístcas !!!!!!

Saludos,
Goose

En Ubuntu (o en general Debian distributions) se instala super fácil:

sudo sh -c "echo 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r)

sudo modprobe aufs
wget -qO- https://get.docker.com/ | sh
sudo gpasswd -a ${USER} docker

Asi puedes bajar una imagen que exista por ejemplo, en Docker hub:

docker pull gustavoarellano/jdk18

Y si quieres ejecutar una imagen, hay muchas formas, dependiendo de lo que quieras. Pero aquí te muestro una:

docker run -it gustavoarellano/jdk18 /bin/bash

Cómo le digo que quiero crear un volumen? Así:

docker run -it -v /home/gustavo/hola:/adios gustavoarellano/jdk18 /bin/bash

Y para asignar un puerto interno 3333 a uno externo (del host) 7777? Así:

docker run -it -p 7777:3333 gustavoarellano/jdk18 /bin/bash

Cómo sabes qué contenedores han corrido o están corriendo actualmente? Así:

docker ps -a

Sólo quieres saber los ID’s de tales contenedores? Así:

docker ps -aq

Y las imágenes??? Así se listan y en el siguiente rengón, así se eliminan:

docker images
docker rmi [IMG-ID]

Me gustaría saber cómo detener, “tagear” y eliminar un contenedor…

docker stop [container-ID]
docker commit [container-ID] nuevo_nombre
docker rm [container-ID]

Qué IP interna tiene un contenedor recién iniciado? Esta:

docker inspect [container-IiD]

Y para “subir” imágenes a un Docker Hub? Así:

docker login
docker push [IMG-ID]

Listo !!!!
Ya eres todo un maestro en los menesteres de Docker…

Suerte y hasta pronto !!!!!!

Cheers,…
Goose

Hay muchas formas de hacer Software.
Nosotros estamos obsesionados encontrando a la mejor.

© 2017 Goose Workshop Suffusion theme by Sayontan Sinha