Taula de continguts

docker (first contact)

un poco de historia

enlaces de interés

instalación

  1. Asegurarse que disponemos de https y certificados en APT:
    $ sudo apt-get install apt-transport-https ca-certificates
  2. Añadir clave GPG de los repositorios DOCKER:
    $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  3. Añadir un nuevo repositorio en /etc/apt/sources.list.d/docker.list:
    deb https://apt.dockerproject.org/repo ubuntu-xenial main
  4. Actualizar información respositorios, instalar:
    $ sudo apt-get update ; sudo apt-get install docker.io
  5. Añadir nuestro usuario al grupo de DOCKER para poder trabajar sin SUDO:
    $ sudo usermod -a -G docker $USER
  6. Refrescamos el grupo para poder trabajar sin cerrar sesión (este comando hace de docker nuestro grupo principal durante la sesión):
    $ newgrp docker

imágenes

Las imágenes son las plantillas a partir de las cuales creamos los contenedores de trabajo (como instanciar el objeto de una clase en OOP)

existe en https://www.docker.com/ un repositorio de imágenes para descargar, tanto oficiales de distros como de usuarios.

Pendiente:

contenedores

El contenedor (en el principio de su existencia) coge la referencia de una imagen y se crea.

Se pueden crear tantos contenedores de la misma imagen como se precisen

mantenimiento (de contenedores)

el nombre del contenedor puede ser su CONTAINER_ID o si NAME (según aparece en el listado generado con el comando correspondiente)

ejecución

funcionamiento

networking

Por defecto, el motor de docker crea una serie de redes para trabajar con los contenedores:

también existen los drivers overlay → ???

Aunque permite crear propias y añadir contenedores a ellas para que se hablen de manera aislada

Data Volumes

es un directorio especificado trabajando en UFS1) que:

Pendiente:

otros comandos

$ docker version
$ docker info

dockerfiles

los «dockerfiles» son ficheros de procesamiento que le dicen a docker como construir una nueva imagen de manera «desatendida»

formato del dockerfile:

FROM ubuntu
MAINTAINER <autor>
ENV http_proxy http://user:pass@proxy/
ENV https_proxy http://user:pass@proxy/
RUN apt-get update
RUN apt-get install apache2 -y
RUN echo "<h1>Apache with Docker</h1>" > /var/www/html/index.html
EXPOSE 80
ENTRYPOINT apache2ctl -D FOREGROUND
  1. FROM: imagen base
  2. MAINTAINER: autor de la imagen
  3. ENV: variables de entorno en la imagen base
  4. RUN: ejecuta una sentencia en la imagen base
  5. EXPOSE: abrimos el puerto especificado en el contenedor para que se pueda mapear desde el anfitrion
  6. ENTRYPOINT: que se debe ejecutar cada vez que se ejecute el contenedor
$ docker build -t <autor>/<imagen> <path_fichero_docker>

repositorio de imágenes

para subir una imagen a los repositorios públicos (Docker Hub)