dilluns, 1 de maig del 2017

Primeros pasos con Docker.


 Buenisismo (corto, practico, con algo de teoria y poco ppt) curso de docker dado en la propia web de docker 
https://training.docker.com/introduction-to-docker
https://training.docker.com/docker-fundamentals
https://training.docker.com/docker-operations

Primeros pasos


Seguir las directrices https://docs.docker.com/engine/installation/linux/ubuntu.

Hemos instalado un unbutu 16 en virtual box con 16GB de disco y 4GB de memoria. Una vez levantada la maquina installar docker ocmo indica las directrizes que como es facil. Una opcion mejor es ir a docker store https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description. estas instrucciones instalan una version mas actualizada

Agregar el usuario al grupo docker para evitar ir haciendo sudo

jordi@ubuntujordi:/$ sudo usermod -aG docker jordi. Despues salir para que pille los cambios logout


y ya se podra acceder sin ir poniendo sudo


jordi@ubuntujordi:~$ docker run hello-world.


para salir del container cntl +p +q

Otro ejemplo es

 docker run -it ubuntu:14.04 bash. Los parametros it significan terminal mas stout, y bash es el comando que ejecuta. Obervar que para salir exit, una vez hecho no se guarda nada, si se crea un usuario se "pierde" .

Ejemplo de ejecutar un contender y dejarlo corriendo.

# docker run -d -P tomcat:7 . La d es "detached mode" para no quedar atrapado.

docker ps saca las imagenes y su estado 

root@ubuntu:/home/jordi# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f6bad8210e61 tomcat:7 "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:32768->8080/tcp dreamy_volhard dca00ddfe6c8 ubuntu:14.04 "bash" 22 minutes ago Up 22 minutes hopeful_jang lo que significa que el redireccionamiento de puertos esta asi 0.0.0.0:32768->8080/tcp root@ubuntu:/home/jordi# curl http://127.0.0.1:32768 Sacara una cosa fea

Docker fundamentals 

 Construir imagenes, Un poco de teoria. Las imagenes se montan a base de capas, cada layer o capa es a su vez una imagen. La estrucutura de capas sirve para simplificar la instalacion y publicacion de imagenes y asi 'dividir' y acutalizar solo la capa nueva que forma una imagen.

Una vez lanzado un contaner en detach mode podremos volver lanzando comandos

jordi@ubuntu:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS               NAMES
86d8efeabe8f        tomcat:7            "ping www.google.es"   About a minute ago   Up 2 seconds        8080/tcp            angry_torvalds
jordi@ubuntu:~$ docker exec -it 86d8efeabe8f bash
root@86d8efeabe8f:/usr/local/tomcat#


dokcer linking para comunicar contarines
docker volumetes.


Hay DOS maneras de crear imagenes
  • ejecutando un commit sobre la imagen por ejemplo  $ docker commit ec221eabd2e3 jordiesc/mitest:1.
  • La otra es con un fichero llamdos dockerfile. 
Las imagenes se guardan en Docker registros, los registry pueden ser publicos o privados . El publico mas famoso es DockerHub. solo considerar en que para produccion solo utilizar imagenes oficiales, que tienen el simbolito de la ballena.

Es posible crear un registro local via docker en si mismo

 jordi@ubuntu:~$ docker run -d -p 5000:5000 registry:2.0. Despues para pull o push imanges hay que hacer referencia al server docker push name.com:5000/repositoryname:tag. para poner regstry remote hay que configurar TLS si no da error otra opcion es establecer --insecure

sudo service docker stop.
/etc/defult/docker DOCKER_OPTS="--insucure-registry ipregistry:portregistry".
sudo service docker start y con eso se activa el insecure.

Docker orchestration

  •  DockerMachine es un tool para orquestrar docker machines en remoto desde un pc. Para instalar descargar los binarios desde aqui y situarlos en los binarios del $PATH usualmente en /usr/local/bin/docker-machine con permsios chmod+x para poder ejecutarlos
 wget
https://github.com/docker/machine/releases/

Con docker machine se puede installar docker en instancias virtuales de varios vendedores y levandar contenedores con la misma API e interfaz.  La verdad es que no acabo de verle la utilidad excepto para entornos multicloud.

  • Docker Swarn. Tool para clusterizar docker machines y tratarlos como una unidad. Parecido a Kubernettes. Cada nodoe thiene que tener swarn agent y hay un swarn Manager o master. el swarn manager o master es un docker container en si mismo asi como los agentes,

docker run -rm swarn create

  • Docker compose es una tool para mangegar multcontainer aplicaicones. Que es lo mas normal con compose se puede spinup todos los containers como una unidad. se crea un fichero yaml y se pone todos los contendedores con las referencias
Instalacion de docker compose basicamente es bajarse y ponerlo en usr/local/bin q es donde estan los ejecutables

curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
despues le damos permisos de ejecucion  sudo chmod +x /usr/local/bin/docker-compose

el funcionamiento basico es tener un fichero docker-stack.yml y con el compando docker-compose up








 




Apache Tomcat/7.0.77

Cap comentari:

Publica un comentari a l'entrada