Al terminar este post conocerán el proceso de como instalar Docker en una compuratora con sistemas operativo Linux basados en Ubuntu.
Aquí hay una lista de requirimentos antes de empezar:
- Tener una computadora con Linux basado en Ubuntu.
- Tener privilegios de administrador.
- Mucha paciencia.
Un poco de teoría que nadie lee pero solo por sí acaso...
En resumen "Docker es una herramienta que ayuda a empaquetar, distribuir y ejecutar aplicaciones dentro de contenedores". Si señores, eso es Docker.
Ahora a más detalle; Docker tiene el mismo propósito que una máquina virtual (VM). Aislar una aplicación y sus dependencias dentro de un contenedor para que pueda ser ejecutado donde sea (ejem. Ejecutar Linux en una maquina virtual sin interferir en el sistema operativo huésped).
Ambos tienen el mismo propósito pero su funcionamiento es diferente. Y claro las ventajas y desventajas que eso conlleva.
En el caso de las máquinas virtuales, son emulaciones de una computadora real que se ejecutan sobre una computadora física (ejem. Uno de los más populares VirtualBox).
Como pueden observar en la siguiente imagen una VM tiene su propio hardware virtual, sistema operativo y espacio para cada VM nueva.
En contraste con Docker, este proveé una capa de abstracción en el espacio de usuarios a nivel de sistema operativo. Esto quiere decir que un contenedor comparte el mismo kernel con el sistema operativo de la computadora física tal como se puede observar en la siguiente imagen:
¿Entonces porqué Docker? Bueno, paar empezar es fácil de usar. Es mucho, mucho más rápido que una VM. Existe DockerHub donde hay cientos y cientos de imagenes de todo tipo de software listo para usarse. Funciona bajo el principio de modulos (puedes combinar contenedores como piezas de Lego) y puede ser escalado con facilidad.
Hasta aquí esta corta introducción para Docker, pero si quieren aprender más sobre el tema entonces les recomiendo este artículo (en inglés).
Basta de palabrería... ¿Cómo de#"#$%&/$ instalo Docker?
1. Para empezar debemos remover Docker ya que hay algunas distribuciones que ya vienen con Docker instalado por defecto así que no está demás actualizar a la versión más reciente:
Para los que no tienen ninguna versión instalada, el comando anterior dirá que el paquete no se encuentra, es normal.
2. Ahora es momento de actualizar:
3. Y para los que tienen un sistema operativo en la versión Trusty 14.04 o anterior es necesario ejecutar el siguiente comando:
Para los que tienen 16.04 o mayor no es necesario ya que el paquete viene instalado por defecto.
4. Actualizamos nuevamente:
5. También es necesario instalar unos paquetes adicionales para usar repositorios sobre HTTPS, entonces para ello ejecutamos el siguiente comando:
6. Y luego agregamos la llave GPG oficial de Docker:
Al terminar debemos verificar la autenticidad de la llave que debe ser igual a esta:
7. Ahora que sabemos que la llave es la oficial es momento de agregar el repositorio estable. El siguiente comando obtiene automaticamente el nombre código de la versión de ubuntu en la que esté basado su sitema operativo (ejem. Trusty, Xenial, etc.) y lo utiliza para agregar la versión adecuada de Docker.
En algunos casos puede que no funcione automaticamente y si esto pasa lo que deben hacer es sustituir
Ese fue mi caso así que tuve que agregar el nombre manualmente de la siguiente manera:
8. Ahora volvemos a actualizar
9. Y si todo salío bien ya podemos instalar Docker
Genial no tuve un solo error. ¿Ahora qué?
Ahora necesitamos verificar la instalación.
1. Así que iniciamos un contenedor de prueba con el siguiente comando:
Y les debe mostrar un texto como se muestra en la siguiente captura:
Si tienen el mismo resultado entonces Docker ya quedó instalado.
(Opcional) Post instalación
Antes de continuar con este paso debes saber que es bajo tu propio riesgo y no es recomendado en ambientes donde la información es sensible.
Para ejecutar Docker siempre se debe usar sudo lo cual puede ser un poco tedioso. La manera de sobrellevar esto es agregar nuestro usuario al grupo de Docker que por defecto tiene privilegios root.
1. Así que primero creamos el grupo
2. Luego agregamos nuestro usuario al grupo
3. Cerramos e iniciamos sesión para aplicar los cambios.
4. Y ahora verificamos que podemos ejecutar un comando de Docker sin sudo.
Al fin...
Y eso es todo. Ahora tienen Docker funcionando en su computadora. Si tienen algún problema pueden recurrir a la documentación oficial (en inglés) que voy a dejar como fuente de información ó pueden agregar comentarios y responderé tan rápido como pueda.
Saludos
Aquí hay una lista de requirimentos antes de empezar:
- Tener una computadora con Linux basado en Ubuntu.
- Tener privilegios de administrador.
- Mucha paciencia.
Un poco de teoría que nadie lee pero solo por sí acaso...
En resumen "Docker es una herramienta que ayuda a empaquetar, distribuir y ejecutar aplicaciones dentro de contenedores". Si señores, eso es Docker.
Ahora a más detalle; Docker tiene el mismo propósito que una máquina virtual (VM). Aislar una aplicación y sus dependencias dentro de un contenedor para que pueda ser ejecutado donde sea (ejem. Ejecutar Linux en una maquina virtual sin interferir en el sistema operativo huésped).
Ambos tienen el mismo propósito pero su funcionamiento es diferente. Y claro las ventajas y desventajas que eso conlleva.
En el caso de las máquinas virtuales, son emulaciones de una computadora real que se ejecutan sobre una computadora física (ejem. Uno de los más populares VirtualBox).
Como pueden observar en la siguiente imagen una VM tiene su propio hardware virtual, sistema operativo y espacio para cada VM nueva.
En contraste con Docker, este proveé una capa de abstracción en el espacio de usuarios a nivel de sistema operativo. Esto quiere decir que un contenedor comparte el mismo kernel con el sistema operativo de la computadora física tal como se puede observar en la siguiente imagen:
¿Entonces porqué Docker? Bueno, paar empezar es fácil de usar. Es mucho, mucho más rápido que una VM. Existe DockerHub donde hay cientos y cientos de imagenes de todo tipo de software listo para usarse. Funciona bajo el principio de modulos (puedes combinar contenedores como piezas de Lego) y puede ser escalado con facilidad.
Hasta aquí esta corta introducción para Docker, pero si quieren aprender más sobre el tema entonces les recomiendo este artículo (en inglés).
Basta de palabrería... ¿Cómo de#"#$%&/$ instalo Docker?
1. Para empezar debemos remover Docker ya que hay algunas distribuciones que ya vienen con Docker instalado por defecto así que no está demás actualizar a la versión más reciente:
$ sudo apt-get remove docker docker-engine docker.io
Para los que no tienen ninguna versión instalada, el comando anterior dirá que el paquete no se encuentra, es normal.
2. Ahora es momento de actualizar:
$ sudo apt-get update
3. Y para los que tienen un sistema operativo en la versión Trusty 14.04 o anterior es necesario ejecutar el siguiente comando:
$ sudo apt-get install
linux-image-extra-$(uname -r)
linux-image-extra-virtual
Para los que tienen 16.04 o mayor no es necesario ya que el paquete viene instalado por defecto.
4. Actualizamos nuevamente:
$ sudo apt-get update
5. También es necesario instalar unos paquetes adicionales para usar repositorios sobre HTTPS, entonces para ello ejecutamos el siguiente comando:
$ sudo apt-get install
apt-transport-https
ca-certificates
curl
software-properties-common
6. Y luego agregamos la llave GPG oficial de Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Al terminar debemos verificar la autenticidad de la llave que debe ser igual a esta:
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
Entonces ejecutamos lo siguiente y comparamos ambos valores:
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <
[email protected]
>
sub 4096R/F273FCD8 2017-02-22
7. Ahora que sabemos que la llave es la oficial es momento de agregar el repositorio estable. El siguiente comando obtiene automaticamente el nombre código de la versión de ubuntu en la que esté basado su sitema operativo (ejem. Trusty, Xenial, etc.) y lo utiliza para agregar la versión adecuada de Docker.
En algunos casos puede que no funcione automaticamente y si esto pasa lo que deben hacer es sustituir
$(lsb_release -cs)
manualmente por el nombre código de su sistema operativo.
$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
Ese fue mi caso así que tuve que agregar el nombre manualmente de la siguiente manera:
$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
xenial
stable"
8. Ahora volvemos a actualizar
$ sudo apt-get update
9. Y si todo salío bien ya podemos instalar Docker
$ sudo apt-get install docker-ce
Genial no tuve un solo error. ¿Ahora qué?
Ahora necesitamos verificar la instalación.
1. Así que iniciamos un contenedor de prueba con el siguiente comando:
$ sudo docker run hello-world
Y les debe mostrar un texto como se muestra en la siguiente captura:
Si tienen el mismo resultado entonces Docker ya quedó instalado.
(Opcional) Post instalación
Antes de continuar con este paso debes saber que es bajo tu propio riesgo y no es recomendado en ambientes donde la información es sensible.
Para ejecutar Docker siempre se debe usar sudo lo cual puede ser un poco tedioso. La manera de sobrellevar esto es agregar nuestro usuario al grupo de Docker que por defecto tiene privilegios root.
1. Así que primero creamos el grupo
$ sudo groupadd docker
2. Luego agregamos nuestro usuario al grupo
$ sudo usermod -aG docker $USER
3. Cerramos e iniciamos sesión para aplicar los cambios.
4. Y ahora verificamos que podemos ejecutar un comando de Docker sin sudo.
$ docker run hello-world
Al fin...
Y eso es todo. Ahora tienen Docker funcionando en su computadora. Si tienen algún problema pueden recurrir a la documentación oficial (en inglés) que voy a dejar como fuente de información ó pueden agregar comentarios y responderé tan rápido como pueda.
Saludos