Docker
Contenido
Introducción
Mis notas mientras aprendo a usar docker. Como siempre en mis notas puede haber cosas erróneas que iré corrigiendo según vaya descubriendo.
Lo que entiendo por Docker
Un gestor de ejecución de aplicaciones en entornos cerrados, lo que se conoce como 'contenedores', como se podria hacer con chroot, pero que se extiende mucho mas allá con el manejo de los puertos que abre cada, acceso a volumenes de datos, etc.
Esos contenedores se pueden personalizar con los servicios o scripts que queramos y se pueden exoprtar fácilmente a otros host que tenga docker. Esa exportación hasta donde he visto se hace mediante el uso de Docker Hub, que es un servicio en la nube (a modo github) donde se almacenan esos contenedoresñ, aunque también he visto que existe el servicio "privado" para que lo montes de forma interna en tu red (ver docker-registry en github)
Documentación
Hasta el momento impecable, con un tutorial online para probar los primeros pasos y después extensa guía de usuario bien estructurada donde paso a paso se van aprendiendo todas las carácterísticas.
Instalación
Muy bien documentada también la instalación para cada S.O. en URL. La instalación se hace mediante la descarga y ejecución de un script, que al final realiza una serie de pasos, añade un source al apt e instala los paquetes de ubuntu.
Uso básico
Trabajo con las Imagenes
Para listar las imágenes que tenemos descargadas
docker images
Para buscar una imagen nueva podemos buscar directamente en la web de docker hub o podemos buscar a través de la línea de comandos
docker search <palabra>
Para descargar una imagen podemos usar el siguiente comando, aunque no es extrictamente necesario, ya que si hacemos uso de una imagen que no tenemos en local irá a buscarlo al repositorio externo
docker pull ubuntu:14.04
Si queremos borrar una de las imagenes que nos hemos descargado podemos usar el siguiente comando
docker rmi ubuntu
Los contenedores
A partir de una imagen podemos levantar un contenedor ejecutando alguna aplicación que contenga. Un ejemplo muy sencillo sería ejecutar un echo
docker run ubuntu:14.04 echo "Una prueba"
Esto lo que hará será crear el contenedor a partir de la imagen ubuntu (con el tag 10.04) y ejecutar el echo dentro del contenedor. Una vez finalizada la ejecución el contenedor permanece creado
Podemos ver las ejecuciones que se están realizando en los diferentes contenedores
docker ps
Si queremos ver además todos los conetenedores, incluso los que no están actualmente ejecutando nada podemos añadir el parámetro -a.
Cada contenedor que se crea tiene asignado un ID y un nombre. Se puede hacer referencia al contenedor a través del ID o del nombre. El nombre se asigna de forma automática a no ser que nosotros se lo especifiquemos en el run con el parámetro --name
Cualquiera de esos contenedores "parados" se pueden volver a ejecutar con:
docker start