Docker Daemon allows to you to access remotelly via API, by default is not active and you have to do a samll configuration. The normal use case is using docker-machine in order to create docker machines, but in enterprise envirotmenst not allways is allowed to install software even less docker software. However the developers may still need to conect to docker daemon to have a test envirotment. Below the stesps to provide a docker daemon a http API conection, enoguth to work with Eclipse or Netbeans
Below is explained the stpes done in Unbutu
First stop the docker service.
service docker stop
Later change the dockerd parameters. There is the option to create a etc/docker/daemon.json
but you still are going to need to change the docker.servie since dockerd is started with fd option. And if you try creating daemon.json with "hosts" options it will give an error asking to you to decide either json or dockerd parameteres.
root@ubuntu:/# vi /lib/systemd/system/docker.service
root@ubuntu:/etc/docker# service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-05-18 01:00:59 CEST; 8s ago
Docs: https://docs.docker.com
Main PID: 4117 (dockerd)
Tasks: 16 (limit: 4915)
Memory: 30.6M
CPU: 2.003s
CGroup: /system.slice/docker.service
├─4117 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd://
└─4121 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/l
to verify that docker is running and giving info curl
-X GET http://127.0.0.1:2375/images/json
Only remain Eclipse, Netbeans is exacly de same. It consists only on connect to the daemon
To look up images and containers there is a nice wizard and list.
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
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