Skip to content

Files

Latest commit

0346a27 · Oct 4, 2020

History

History
154 lines (117 loc) · 3.45 KB

File metadata and controls

154 lines (117 loc) · 3.45 KB

Docker

Tabla de Contenido

Introducción

¿Problematicas del desarrollo de software profesional?

A la hora de hacer aplicaciones y proyectos de software nos podemos encontrar con varios problemas, estos problemas los podemos agrupar en tres categorías:

  • Construir. Escribir código
    • Dependencias de desarrollo
    • Versiones de entornos de ejecución
    • Equivalencia de entornos de desarrollo
    • Equivalencia con entornos productivos
    • Versiones/compatibilidad 3rd party
  • Distribuir. Aplicación funcionando en otras maquinas
    • Output de build heterogéneo
    • Acceso a servidores productivos
    • Ejecución nativa vs virtualización
    • Serverless
  • Ejecutar.
    • Dependencias de aplicación
    • Compatibilidad de sistema operativo
    • Disponibilidad de servicios externos
    • Recursos de hardware

Docker promete ser la solución a todo nuestros problemas de una manera simple y sencilla.

Build, ship and run your code Anywhere

Comandos

docker

docker run --name system ubuntu

docker run -d --name server nginx
docker run -d --name server -p 8080:80 nginx

docker run -d --name db mongo
docker exec -it db bash
mongo
use master
db.users.insert({"name":"Elias"})
db.users.find()

docker run --name db -d -v /C/Users/elias/Desktop/mongodata:/data/db mongo
docker exec -it db bash

mongo
use master
db.users.insert({"name":"elias"})
db.users.find()

Volumenes https://docs.docker.com/storage/volumes/

docker volume ls
docker volume prune
docker volume create dbdata
docker volume ls
docker run -d --name db -v dbdata:/data/db mongo

Imagenes

docker pull redis

Dockerfile

FROM ubuntu

RUN touch /usr/src/hola
# Construir la imagen
docker build -t ubuntu:eocode .

# Cambiar tag
docker run -it ubuntu:eocode
ls -lac /usr/src
docker tag ubuntu:eocode eocode/ubuntu:master

# Enviar al repositorio
docker push eocode/ubuntu:master

# Historial de repositorio
docker history eocode/ubuntu:master

Herramienta para ver que paso con la imagen https://github.com/wagoodman/dive

Construir aplicaciones

# Construir app
docker build -t dockerapp .
docker run -it -p 3001:3000 -v /C/Users/elias/Desktop/docker:/usr/src dockerapp

# Red
docker network ls
docker network create --attachable eocodenetwork
docker run -d --name db mongo
docker run -d --name app -p 3000:3000 --env MONGO_URL=mongodb://db:27017/test dockerapp

docker network connect eocodenetwork app
docker network connect eocodenetwork db

# docker-compose
docker-compose logs app
docker-compose exec app bash
ls -lac

docker-compose build
docker-compose up -d
docker-compose logs -f app
docker-compose exec app bash
apt-get update
docker-compose up -d
docker-compose logs -f app

docker-compose up -d scale=4
docker build -t dockerapp -f build/production.Dockerfile .
docker run --rm -it dockerapp bash
ls -lac

Docker en Docker

docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker:18.06.1-ce

https://hub.docker.com/_/docker/

Borrar imagenes none

A menudo es útil borrar imagenes construidas que no necesitamos o quedan huerfanas

docker image prune --filter="dangling=true"