Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 2.42 KB

1. Primer día.md

File metadata and controls

59 lines (46 loc) · 2.42 KB

Primer día - Contenedores de software

Conceptos

Analogía:

  • Clases = Imágenes
  • Objetos = Contenedores

Conceptualmente, un container es una capa escribible sobre una imagen, que es solo la definición. Son varias capas, el kernel, el SO, las aplicaciones, etc. Y la una capa puede ser usada en varias imágenes.

La imagen registry (https://hub.docker.com/_/registry) es un equivalente de Artifactory.

Docker file commands

  • FROM: imagen
  • RUN: comando
  • ADD: copiar

Docker commands

Comandos de la docker machine

  • docker version: muestra versión de cliente y servidor (la docker machine)
  • docker-machine ls muestra lista de docker machines
  • docker-machine env: muestra variables de entorno de docker machine, por ejemplo la IP
  • docker-machine stop: apaga el docker server
  • docker-machine start: enciende el docker server

Comandos de contenedores

  • docker ps (docker container ls): lista de containers
    • -a muestra incluso los inactivos
  • docker image ls (docker images): lista de imágenes
    • -a incluye ocultas
  • docker pull ubuntu:latest: descarga la última versión de cierta imagen y lo guarda dentro del registro local de imágenes
  • docker create -t -i ubuntu /bin/bash: crea un contenedor a partir de una imagen
    • -t que devuelva una terminal
    • -i interactivo
    • /bin/bash ejecutara (cuando sea levantado) el bash del ubuntu
    • -d modo detachado
  • docker start -a -i <ID>: levanta el contenedor
    • -a stdout
    • -i interactivo
  • docker rm <ID>: borra el contenedor
  • docker rmi <ID>: borra la imagen
  • docker run -i -t ubuntu /bin/bash: todo de una (baja la imagen, crea el contenedor y se loguea)
  • docker run hello-world: descarga y crea hola mundo de Docker

Contaneirizar una app

  • docker build -t dockertest .: construye la imagen a partir del Dockerfile del directorio donde se está parado
    • -t nombre de la imagen
  • docker image inspect dockertest ver detalles de la imagen
  • docker run -p 4000:80 dockertest
    • -p expone (mapea) los puertos externo:interno (de 4000 a 80)
    • -d modo detachado

Se podría bajar un container, hacerle modificaciones y luego crear una imagen; pero NO es apropiado. Lo correcto es hacer todos los ajustes en el Dockerfile, para mantener el concepto de infrastructure as code.

Los procesos se ejecutan realmente en el SO host; por eso se los puede ver desde el host.