MasterClass Docker
info masterclass
ponente: Dani Sanchez •••••••••• –> docker user ••••••••••
pass:2…s
docker
info general
3 componentes:
- docker daemon
- rest api (escuchando en file system) –> nos permite hablar con otros demonios docker (en otras máquinas)
- docker client (la consola que envía comandos al daemon)
alpine : lenguaje propio para dockerimágenes basadas en distribución linux muy ligera
trabajando con docker
$ docker run httpd -p 80:80 httpd:2.4
–> mapeando puerto de la red de docker a tu ordenador
$ docker run httpd -P httpd:2.4 ; docker ps
–> muestra que puertos se están mapeando (por si no sabes que puertos ofrece el contenedor)
$ docker run httpd -d -P httpd:2.4
–> detach (para liberar la consola)
$ docker logs $(docker ps -q)
–> mirar logs (normalmente se le pasa el ID o nombre del contenedor
vinculación a una carpeta del equipo «host»: $ docker run -d -v /home/dani/workspace:/usr/local/apache2/htdocs -p 80:80 httpd:2.4
–> vinculación con carpeta local:contenedor
$ docker stop <id>
$ docker exec -it <id> bash
–> entrar en el contenedor, en modo interactivo y terminal
- desde aquí dentro podemos hacer cambio, PERO NO TIENEN PERSISTENCIA
- podemos sacar una imagen de un contenedor (con los cambios realizados)
$ docker commit <id> -t <nombre_imagen>
$ docker tag <id> <nombre>
- no se suele hacer así, se usa docker file
Dockerfile
FROM <imagen> '' descargará si no está COPY index.html /usr/local/apache2/htdocs/
$ docker build -t apache <contexto>
–> contexto = path (de donde copiará los ficheros)
- por defecto coge el fichero Dockerfile del path actual
- se puede especificar otro fichero con
-f
a docker se pueden subir todas las imágenes que quieras, gratuitamente.
docker compose
para uso local, ejecutar varios contenedores, para desarrollo
docker-compose.iml
, estilo JSON, menos verboso, ejecuta comandos de docker
version: '3.2' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
entornos
- implementación
- pre-producción
- producción
- (Q&A)
subir
docker login