sábado, 17 de diciembre de 2016

Dockers linux, procedimiento basico de instalacion

Este tutorial de dockers , se realizo pruebas en un equipo virtual con redhat 6

Se requiere usar los paquetes que están en epel
$yum install docker-io

Iniciamos el servicio y se añade al auto inicio:
$/etc/init.d/docker start
$chkconfig docker on

Si el equipo en el que requerimos el docker cuenta con Internet podemos descargarlo de la siguiente manera:
#Busca imagenes
$docker search debian
#Descarga una imagen
$docker pull debian

Ahora si contamos con una imagen de forma local o es posible conectar el equipo a internet, podemos crear la imagen o descargarla de algún repo
- Repositorio donde descargar imagenes
https://hub.docker.com/explore/
https://hub.docker.com/_/debian/

Para importar nuestra imagen puede realizarse de la siguiente forma

$cat debian_squid.tar.gz |docker import - debian-squid

Ahora podemos visualizar nuestra imagen

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
debian-squid        latest              074db2704fe9        10 days ago         228 MB

Se procede a iniciar la imagen direccionando a un puerto, en este caso a un proxy cache

$docker run -p 3129:3128 -d -i -t debian-squid /bin/bash

Una vez inicializada la imagen del contenedor , podemos instalar los paquetes requeridos, squid, se realiza su configuracion

Para volver a ingresar al contenedor del docker se requiere saber su id

$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9b35b6f16b74        debian-squid        "/bin/bash"         10 days ago         Up 10 days          0.0.0.0:3129->3128/tcp   cocky_jones

Ya que se conoce el id se ingresa de la siguiente forma:

$docker exec -it 9b35b6f16b74 bash

[root@iusatec ~]# docker exec -it 9b35b6f16b74 bash
root@9b35b6f16b74:/#

Una vez que tengamos un contenedor con el sw requerido podemos exportarlo o realizar una copia

Exportar
$docker export debian-squid |gzip > debian_squid.tar.gz

Realizar un commit
$docker commit 9b35b6f16b74 debian01

En el firewall la configuracion la realiza docker

$iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination      

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination      
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0        
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0        
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

Chain DOCKER (1 references)
target     prot opt source               destination      
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.1          tcp dpt:3128

Podemos ver que el docker- proxy esta escuchando
$netstat -tupln

tcp        0      0 :::3129                     :::*                        LISTEN      14946/docker-proxy

Esto es lo basico que se requiere para trabajar con contenedores linux