Docker 101

Miguel Angel Gordián

@ilcapitanozoek

Docker

Imágenes y Contenedores

Ciclo de vida

Volumenes

Compose

Es una plataforma para el desarrollo, administración y ejecución de contenedores.


  • Docker engine es el sistema de virtualización combinado con un conjunto de herramientas para aislar y administrar tus aplicaciones.
  • Docker hub servicio para compartir imágenes.

Componentes

Imágenes Es el elemento base, el  cual contiene las dependencias, la aplicación y algunas configuraciones.

Contenedores Es la instancia de una imagen, está aislado del sistema y puede sobre escribir las configuraciones por  defecto.

Stacks Es un conjunto de contenedores que definen un servicio.

Imagen 

Podemos obtener imágenes 

desde un registry o construirlas por medio de un Dockerfile tomando una imagen como base.

docker pull composer/composer
docker pull redis
FROM php:5.6-cli

EXPOSE 8080
ADD . /app
WORKDIR /app
ENTRYPOINT php -S 0.0.0.0:8080 src/index.php

Dockerfile

Instrucciones

FROM Indica la imagen que tomaremos como base base

RUN ejecuta un comando en una nueva capa intermedia  para la construcción del contenedor.

WORKDIR indica el directorio base, por defecto se ejecutarán  comandos a partir de este directorio.

ADD Copia los archivos locales al contenedor.

ENTRYPOINT Indica el comando a ejecutar por el contenedor.

Construcción

Solo necesitas ejecutar el sub comando build y darle un tag a tu imagen.

docker build -t php-junio .
Sending build context to Docker daemon 4.608 kB
Sending build context to Docker daemon 
Step 0 : FROM composer/composer
 ---> b87b6a34ca39
Step 1 : ADD . /app
 ---> ac10ddaf2e5f
Removing intermediate container 5fe467d8b756
Step 2 : WORKDIR /app
 ---> Running in feae9da8b08a
 ---> 17e508381433
Removing intermediate container feae9da8b08a
Step 3 : RUN composer install
 ---> Running in 474d3dbe699e

Contenedores

Podemos partir de cualquier imagen si tenemos su id o tag.

docker run -it --rm -p 80:8080 php-session

Opciones

-i mantiene stdin abierta

-t Asigna una pseudo-tty

-rm Elimina el contenedor después de su uso.

-p Enlaza un puerto del contenedor al host

-v Asigna un volumen al contendor.

Ciclo de vida

Docker ps Mostrar contenedores activos

Docker images Mostrar todas mis imágenes

Docker start Inicia un contenedor

Docker stop Detiene un contenedor activo

Docker rm/rmi Borran un contenedor o imagen respectivamente.

Compose

Es una herramienta para definir y ejecutar aplicaciones con múltiples contenedores.

mongo:
  image: mongo

junio:
  build: .
  command: "php -S 0.0.0.0:8080 src/index.php"
  ports:
    - "80:8080"
  volumes:
    - ".:/app"
  links:
    - mongo

Docker 101

By Miguel Angel Gordian