8

Resumen de todo el contenido del curso

Resumen de todo el contenido del curso, se recomienda clonar el repo en local y abrir en el README.md en vs para mejorar la experiencia.

<code>
**Curso De Docker**
   https://platzi.com/clases/docker/**1. Introducción**    **Class#1**        **Bienvenida al curso**    **Class#2**        **Las tres áreas en el desarrollo de software profesional**
            1. Construir:
                ➔ Entorno de desarrollo
                ➔ Dependencias
                ➔ Entorno de ejecución
                ➔ Equivalencia con entorno productivo
                ➔ Servicios externos
            2. Distribuir:
                ➔ Divergencia de repositorios
                ➔ Divergencia de artefactos
                ➔ Versionado
                ➔ Equivalencia con entorno productivo
                ➔ Servicios externos
            3. Ejecutar:
                ➔ Dependencias de aplicación
                ➔ Compatibilidad del entorno productivo
                ➔ Disponibilidad de servicios externos
                ➔ Recursos de hardware
    **Class#3**        **Virtualización**            **Problemas de las VMs**
                Peso:
                    En el orden de los GBs. Repiten archivos en común. Inicio lento.
                Costo de administración:
                    Necesita mantenimiento igual que cualquier otra computadora.
                Múltiples de formatos:
                    VDI, VMDK, VHD, raw, etc.
            **Containerización**
                ➔ Flexibles
                ➔ Livianos
                ➔ Portables
                ➔ Bajo acoplamiento
                ➔ Escalables
                ➔ Seguros
    **Class#4**        **Preparando tu entorno de trabajo**
            docker run hello-world;
            docker info;
    **Class#5**        **[Bonus] Play with Docker**    **Class#6**        **Qué es y cómo funciona Docker*****2. Contenedores**    **Class#7**        **Primeros pasos: hola mundo**
            ➔ docker run hello-world;
    **Class#8**        **Conceptos fundamentales de Docker: contenedores**    **Class#9**        **Comprendiendo el estado de Docker**
            ➔ docker inspect CONTAINER ID;
            ➔ docker inspect NAME;
            ➔ docker run --name hello-sc hello-world;
            ➔ docker rename hello-sc helo;
            ➔ docker container prune;<!-- Remove all containers. -->
    **Class#10**        **El modo interactivo**
            ➔ docker run ubuntu;<!-- Create docker with Ubuntu. -->
            ➔ docker run -it ubuntu; <!-- Running container in interactive mode-->
    **Class#11**        **Ciclo de vida de un contenedor**
            ➔ docker run --name SO -d ubuntu tail -f /dev/null;
            ➔ docker exec -ti ${nameContainer} bash;
            ➔ docker inspect --format '{{.State.Pid}}' ${nameContainer};
    **Class#12**        **Exponiendo contenedores**
            ➔ docker run -d --name proxy nginx;      
            ➔ docker run --name proxy -p 8080:80 nginx;
                                           |   |__
                                       Local Port | 
                                            Container port
            ➔ docker logs -f proxy;
            ➔ docker logs --tail -f proxy;
**3. Datos en Docke**    **Class#13**        **Bind mounts**
            ➔ docker rm -f ${nameContainer};
            ➔ docker run -d --name dataBaseMongo -v ~/Documents/github/CursoDeDocker/dockerData:/data/db mongo;
            ➔ docker run -d --name ${nameContainer} -v ${localPath}:${containerPath}${nameContainer] ${RemoteContainer};
                mongo
                show dbs
                use nameNewDb
                db.users.insert({"nombre":"name", "":"", "":"", "":""})
                db.users.find()
    **Class#14**        **Volúmenes**
            ➔ docker volume ls;
            ➔ docker volume create ${nameContainer};
            ➔ docker run -d --name ${nameContainer} --mount src=${nameVolume},dst=/data/db mongo
            ➔ docker run -d --name ${nameContainer} --mount src=${nameVolume},dst=${containerPath}${RemoteContainer};
            ➔ docker inspect${nameContainer};
    **Class#15**        **Insertar y extraer archivos de un contenedor**
            ➔ docker run -d --name ${nameContainer} {RemoteContainer} tail -f /dev/null;
            ➔ docker cp ${LocalNameFile} copytest:/${DirRempteName}/${RemoteFileName};
            ➔ docker cp text.log ubuntu:/test/log.log
            ➔ docker cp  ${nameContainer}:/${DirRemoteName}${DirLocalName};
            ➔ docker cp ubuntu:/test/log.log:/text.log**4. Imágenes**    **Class#16**        **Conceptos fundamentales de Docker: imágenes**
            ➔ docker image ls;
                Imagenes: plantillas o moldes a partir delaquese crean contenedores.
            ➔ docker pull ubuntu:${tag};
    **Class#17**        **Construyendo una imagen propia**
            ➔ docker build -t ubuntu:platzi ~/Documents/github/CursoDeDocker/dockerFiles;
            ➔ docker build -t ubuntu:${tagName} .;
            ➔ docker run -it ubuntu:${tag};
            ➔ docker tag ${REPOSITORY}:${TAG}${propietario}/${so}:${tag};
            ➔ docker push gsuscastelsc/ubuntu:platzi;
    **Class#18**        **El sistema de capas**
            ➔ docker history ubuntu:platzi;
            ➔ dive ubuntu:platzi;
**5. Docker como herramienta de desarrollo**        **Class#19**        **Usando Docker para desarrollar aplicaciones**
            ➔ git clone https://github.com/platzi/docker;
            ➔ docker build -t platziapp .; 
            ➔ docker run --rm -p 3000:3000 platziapp;
    **Class#20**        **Aprovechando el caché de capas para estructurar correctamente tus imágenes**
            ➔ docker run --rm -p 3000:3000 -v /home/sc/Documents/github/CursoDeDocker/index.js:/usr/src/index.js platziapp
    **Class#21**        **Docker networking: colaboración entre contenedores**
            ➔ docker network ls;
            ➔ docker network create --attachable(permite que otros contenedores se conecten) platziNet;
            ➔ docker network inspect platziNet;
            ➔ docker run -d --name db mongo;
            ➔ docker network connect platziNet db;
            ➔ docker run -d --name app -p 3000:3000 --env(asignar valiables de entorno) MONGO_URL=mongodb://db:27017/test platziapp;
            ➔ docker network connect platziNet app;
**6. Docker Compose: la herramienta todo en uno**    **Class#22**        **Docker Compose: la herramienta todo en uno**
            Install dockerCompose:
                ➔  sudo curl -L"https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose;
                ➔ sudo chmod +x /usr/local/bin/docker-compose;
                ➔ docker-compose --version;
            Up docker compose:
                ➔ docker-compose up;
                ➔ docker-compose up -d;
    **Class#23**        **Subcomandos de Docker Compose**
            ➔ docker-compose ps;
            ➔ docker-compose logs -f ${nameContainer};
            ➔ docker-compose exec ${nameContainer} bash;
            ➔ docker-compose down;
    **Class#24**        **Docker Compose como herramienta de desarrollo**
            ➔ docker-compose build;
    **Class#25**       **Compose en equipo: override**
            ➔ touch docker-compose.override.yml;
            ➔ docker-compose down;
            ➔ docker-compose up -d --scale app=2;
**7. Doker Avanzado**    **Cass#26**        **Administrando tu ambiente de Docker**
            ➔ docker ps -a;
            ➔ docker container prune;<!-- Remove all containers. -->
            ➔ docker rm -f $(docker ps -aq);
            ➔ docker system prune;<!-- Remove all containers. example: tag none-->
            ➔ docker rmi -f $(docker images -aq);
            ➔ docker volume prune;
            ➔ docker network prune
            ➔ docker stats;
            ➔ docker run -d --name ${name} --memory 1g ${tag};
    **Cass#27**        **Deteniendo contenedores correctamente: SHELL vs. EXEC**
            ➔ docker ps -l;
            ➔ docker kill looper;
            ➔ docker exec -ti looper ps -ef;
    **Cass#28**        **Contenedores ejecutables: ENTRYPOINT vs CMD**run -d --name pinger ping google.com;
    **Cass#29**        **El contexto de build**
            ➔ touch .dockerignore;
    **Cass#30**        **Multi-stage build**
            ➔ docker build -t prodapp -f build/production.Dockerfile . ;
    **Cass#31**        **Docker-in-Docker**
            ➔ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker:19.03.12;
**8. Cierre**    **Cass#32**        **Cierre del curso****Notes**
    Commands:
        ➔ docker info
        ➔ docker --version
        ➔ docker run hello-world
        ➔ docker images
        ➔ docker run: 
            Realizaa 2 acciones, 
                1. Crea el contenedor
                2. Ejecuta el contenedor
        ➔ Banderas: 
            docker run -it: 
             ➔ -i: STDIN del contenedor.             ➔ -t: Indica quese requiere una pseudo terminal.
             ➔ -d: Ejecutar contenedores de fondo(background)
        ➔ docker attach 6a33(idContainer or name)     
    Imagen:
        ➔ Es una plantilla de lectura, apartir delaquese crean los contenedores.
    Cliclos de Vida:
        ➔ Se crea el contenedor a partir de una imagen
        ➔ Se ejecuta un proceso determinado en el contenedor
        ➔ El proceso finaliza y el contenedor se detiene
        ➔ Se destruye el contenedor
    Cliclos de Vida avanzado:
        ➔ Se crea el contenedor a partir de una imagen
        ➔ Se ejecuta un proceso determinado en el contenedor
        ➔ Realizar acciones dentro del contenedor
        ➔ Detener el contenedor
        ➔ Lanzaar el contenedor nuevamente
    How install:
        weblogic: docker run -d -p 7000:7001 -p 9001:9002 -it --name wl -v /github/u01/oracle/properties:/u01/oracle/properties container-registry.oracle.com/middleware/weblogic:12.2.1.3
**Links**
    Insall dockerCompose:
        https://docs.docker.com/compose/install/
    Wagodman:
        https://github.com/wagoodman/dive
    Hub Docker:
        https://hub.docker.com/
    Play with Docker:
        https://labs.play-with-docker.com/
    Slides Curso Docker:
        https://static.platzi.com/media/public/uploads/slides-curso-docker_d04a71e1-4aa5-4b52-9dea-ba3ad2724202.pdf
Escribe tu comentario
+ 2
1
14819Puntos

Muchas gracias por el aporte, lo estaré revisando