Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Instalar Docker en Debian Jessie

Imago voragine.net
[actualizado el ]

Edición 3 de diciembre de 2017. Para la versión Stretch, Docker ya está en los repositiorios de Debian. Se puede instalar sencillamente con sudo apt-get install docker.io. Sin embargo esta versión de Docker no está actualizada y para hacer correr determinados containers, como el de Discourse, no funcionará. Recomendamos instalar Docker CE para Debian Stretch y Buster.

Docker es una de esas cosas que, una vez que las descubres, no sabes cómo has podido vivir sin ellas. Me pasó con git, y me pasó por supuesto con Linux.

Docker ejecuta aplicaciones dentro de contenedores, aisladas del resto del sistema, con toda la seguridad que esto conlleva. Docker no es un motor de virtualización ni de emulación, es más ligero que estas soluciones ya que los contenedores no tienen por qué incluir un sistema operativo (aunque pueden), si no que se apoyan en el sistema operativo anfitrión.

Cómo instalar Docker en Debian Jessie

Antes de instalar Docker en Debian Jessie hay que asegurarse de que el sistema cumple los requisitos: arquitectura de 64 bits y kernel 3.10 o superior:

$ uname -r
3.16.0-4-amd64

Docker no está incluido en los repositorios de Debian pero se pueden añadir al sistema los repositorios que ofrece Docker para poder instalarlo y actualizarlo con apt. Para ello se añade la clave GPG:

# ejecutamos como root
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Luego se crea el archivo /etc/apt/sources.list.d/docker.list para alojar el repositorio:

# ejecutamos como root
echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list

A continuación se actualiza apt y se comprueba que los repositorios de Docker son correctos:

# ejecutamos como root
apt-get update
apt-cache policy docker-engine

Si todo está en orden, instalamos Docker e iniciamos el servicio:

# ejecutamos como root
apt-get install docker-engine
service docker start

Docker ofrece un container de prueba, para comprobar que funciona:

# ejecutamos como root
docker run hello-world

La página de documentación de Docker contiene información para permitir a usuarios diferentes del root ejecutar docker.

5 comentarios

    • Por Jorge

    ¿Qué tipo de aplicaciones ejecutas en Docker? ¿Lo usas solamente para ejecutar aplicaciones web en un servidor remoto, o también en tu ordenador?

  1. En docker puedes ejecutar cualquier cosa. Hay imágenes de un montón de aplicaciones: échale un ojo al repositorio oficial de imágenes.

    Aunque no es un motor de virtualización, hay contenedores para hacer correr sistemas operativos. Así que se puede usar para tener una distro de linux dentro de otra, para testear, para probar otra configuración…

    Yo lo uso para montar entornos de desarrollo en local, pero también para determinadas aplicaciones en producción. Por ejemplo la manera más fácil de instalar Discourse es usando Docker.

    Discourse es un buen ejemplo de la utilidad de Docker. Discourse necesita ruby, y suele usar Nginx como servidor web. La imagen Discourse para Docker ya trae todo eso listo, de manera que se puede instalar fácilmente en una máquina en la que esté corriendo Apache como servidor web.

    • Por PEGT •

    Hola en mi caso hago practicas virtualizando sistemas operativos a fin de lograr que en un servidor pueda tener servidores con sistemas operativos independientes, he trabajado con proxmox pero hay otros mas como ya sabrás.
    Me interesa esta nueva tecnología pero me gustaría saber u obtener información es de si puedo realizar esto con docker, tener un servidor con Debían y sobre este poder instalar otros contenedores con sistemas operativos para poder correr distintos servicios de manera independiente.

    1. Hola PEGT,

      Docker te permite virtualizar sistemas operativos completos, sí. Por ejemplo, mira las imágenes oficiales para instalar Ubuntu en un container.

Dejar un comentario

*
*

 

Un trackback