Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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"