martes, 25 de junio de 2019

Docker Community Edition (CE) en Ubuntu GNU/Linux 19.04


Como ya hablamos con anterioridad de la tecnología Docker, continuaremos sin dar mucho preámbulo de los conocimiento básicos de la gestión de contenedores. 
Continuamos con el tema de instalación, gestión y configuración. ahora abordaremos en la distribución de GNU/Linux Ubuntu versión 19.04.

Instalación. 

Como ya sabemos Docker es nativo de Linux, por ello la instalación en GUN/Linu es mucho mas fácil de lo que muchos creen en ambientes para desktop. 

Instalación en Ubuntu versión 19.04.


Si usas el shell de el sitio oficial para instalación de docker en ubuntu ver. 19.04


#   $ curl -fsSL https://get.docker.com -o get-docker.sh
#   $ sh get-docker.sh

de script  en https://get.docker.com/
(el cual funciona perfecto para distribuciones menos a 19.04)

Esta opción por lo menos a mi en versión 19.04 no me ayudo. de igual forma intente con los comandos directamente nativos de Ubuntu (hay dos opciones que se listan a continuación)

opción uno instalar docker en su versión estable para sistema Linux 
opción dos instalar la versión beta 

usar la opción siguiente NO fue para mi la mejor, me explico.

sudo snap install docker 

al termino nos indica que docker ya fue instalado, ahora si escribimos la palabra docker de nuevo tendremos un resultado como este 

oposada@gnulinux:~$ docker
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers


Video de Ejemplo



esto podría ser bueno de primera, ya que el objetivo es instalarlo. pero hay que ver mas al fondo, y buscando las opciones recopile algunos comandos que en lo particular me ayudaron a tenerlo en la versión 19.04 de GUN/Linux Ubuntu.


¿Que ejecutamos distinto?


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable edge"
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable edge test"
sudo apt-get update
apt-cache policy docker-ce
 
A este punto mi resultados en terminal fueron los siguientes
 
oposada@gnulinux:~/Docker$ apt-cache policy docker-ce
docker-ce:
  Instalados: (ninguno)
  Candidato:  5:19.03.0~2.3.rc3-0~ubuntu-disco
  Tabla de versión:
     5:19.03.0~2.3.rc3-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~2.2.rc2-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~1.5.beta5-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~1.4.beta4-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~1.3.beta3-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~1.2.beta2-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages
     5:19.03.0~1.1.beta1-0~ubuntu-disco 500
        500 https://download.docker.com/linux/ubuntu disco/test amd64 Packages 
 Ahora por fin a instalarlo con el siguiente comando


sudo apt-get install -y docker-ce

Resultado
oposada@gnulinux:~/Docker$ sudo apt-get install -y docker-ce
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes adicionales:
  aufs-tools cgroupfs-mount containerd.io docker-ce-cli pigz
Se instalarán los siguientes paquetes NUEVOS:
  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli pigz
0 actualizados, 6 nuevos se instalarán, 0 para eliminar y 3 no actualizados.
Se necesita descargar 87.8 MB de archivos.
Se utilizarán 390 MB de espacio de disco adicional después de esta operación.
Des:1 http://mx.archive.ubuntu.com/ubuntu disco/universe amd64 pigz amd64 2.4-1 [57.4 kB]
Des:2 https://download.docker.com/linux/ubuntu disco/test amd64 containerd.io amd64 1.2.6-3 [22.6 MB]
Des:3 http://mx.archive.ubuntu.com/ubuntu disco/universe amd64 aufs-tools amd64 1:4.9+20170918-2 [104 kB]
Des:4 http://mx.archive.ubuntu.com/ubuntu disco/universe amd64 cgroupfs-mount all 1.4 [6 320 B]
Des:5 https://download.docker.com/linux/ubuntu disco/test amd64 docker-ce-cli amd64 5:19.03.0~2.3.rc3-0~ubuntu-disco [42.3 MB]
Des:6 https://download.docker.com/linux/ubuntu disco/test amd64 docker-ce amd64 5:19.03.0~2.3.rc3-0~ubuntu-disco [22.7 MB]
Descargados 87.8 MB en 1min 23s (1 061 kB/s)                                  
Seleccionando el paquete pigz previamente no seleccionado.
(Leyendo la base de datos ... 210160 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../0-pigz_2.4-1_amd64.deb ...
Desempaquetando pigz (2.4-1) ...
Seleccionando el paquete aufs-tools previamente no seleccionado.
Preparando para desempaquetar .../1-aufs-tools_1%3a4.9+20170918-2_amd64.deb ...
Desempaquetando aufs-tools (1:4.9+20170918-2) ...
Seleccionando el paquete cgroupfs-mount previamente no seleccionado.
Preparando para desempaquetar .../2-cgroupfs-mount_1.4_all.deb ...
Desempaquetando cgroupfs-mount (1.4) ...
Seleccionando el paquete containerd.io previamente no seleccionado.
Preparando para desempaquetar .../3-containerd.io_1.2.6-3_amd64.deb ...
Desempaquetando containerd.io (1.2.6-3) ...
Seleccionando el paquete docker-ce-cli previamente no seleccionado.
Preparando para desempaquetar .../4-docker-ce-cli_5%3a19.03.0~2.3.rc3-0~ubuntu-disco_amd64.deb ...
Desempaquetando docker-ce-cli (5:19.03.0~2.3.rc3-0~ubuntu-disco) ...
Seleccionando el paquete docker-ce previamente no seleccionado.
Preparando para desempaquetar .../5-docker-ce_5%3a19.03.0~2.3.rc3-0~ubuntu-disco_amd64.deb ...
Desempaquetando docker-ce (5:19.03.0~2.3.rc3-0~ubuntu-disco) ...
Configurando aufs-tools (1:4.9+20170918-2) ...
Configurando containerd.io (1.2.6-3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Configurando docker-ce-cli (5:19.03.0~2.3.rc3-0~ubuntu-disco) ...
Configurando pigz (2.4-1) ...
Configurando cgroupfs-mount (1.4) ...
Configurando docker-ce (5:19.03.0~2.3.rc3-0~ubuntu-disco) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
Procesando disparadores para systemd (240-6ubuntu5.1) ...
Procesando disparadores para man-db (2.8.5-2) ...
Procesando disparadores para libc-bin (2.29-0ubuntu2) ...

ahora Valido que los servicios se encuentren funcionando de forma correcta con el siguiente comando.

sudo systemctl status docker


 Ejemplo

oposada@gnulinux:~/Docker$
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
   Active: active (running) since Tue 2019-06-25 12:30:35 CDT; 31s ago
     Docs: https://docs.docker.com
 Main PID: 8006 (dockerd)
    Tasks: 11
   Memory: 39.7M
   CGroup: /system.slice/docker.service
           └─8006 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contain

jun 25 12:30:31 gnulinux dockerd[8006]: time="2019-06-25T12:30:31.284860920-05:0
jun 25 12:30:31 gnulinux dockerd[8006]: time="2019-06-25T12:30:31.285046663-05:0
jun 25 12:30:31 gnulinux dockerd[8006]: time="2019-06-25T12:30:31.285069037-05:0
jun 25 12:30:31 gnulinux dockerd[8006]: time="2019-06-25T12:30:31.285388034-05:0
jun 25 12:30:32 gnulinux dockerd[8006]: time="2019-06-25T12:30:32.184641113-05:0
jun 25 12:30:32 gnulinux dockerd[8006]: time="2019-06-25T12:30:32.495037170-05:0
jun 25 12:30:34 gnulinux dockerd[8006]: time="2019-06-25T12:30:34.979634999-05:0
jun 25 12:30:34 gnulinux dockerd[8006]: time="2019-06-25T12:30:34.979785483-05:0
jun 25 12:30:35 gnulinux dockerd[8006]: time="2019-06-25T12:30:35.310312186-05:0
jun 25 12:30:35 gnulinux systemd[1]: Started Docker Application Container Engine
 


Ahora corremos el contenedor default "hello-word" 
Comando: sudo docker run hello-world 

Ejemplo 
 oposada@gnulinux:~/Docker$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.


To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


ahora ya tenemos instalado Docker en nuestro sistema GNU/Linux Ubuntu verción 19.04

Video de Ejemplo. 

Para la gestión, al igual que en windows y en MacOS tenemos la herramienta 

sitio oficial 
https://kitematic.com/

esta fantastica tool nos yauda al manejo de los contenedores en nuestro ambiente. 

Descarga la aplicación kitematic e instalala dando doble clic desde el icono de la solución (Como en windows)


o desde la terminal de Linux

Comando
sudo dpkg -i Kitematic-0.17.7_amd64.deb


Resultadtenemos un entorno de escritorio para poder descargar y manejar nuestros contenedores 
 
Solución de problemas comunes

Es comun que al inicio cuando instalamos esta solución, a diferencia de windows o sistemas macOS en linux tenemos mucha variedad de distribuciones y en cada distribución varia la ruta y nombre de la terminal. 

hay un detalle que se tiene que revisar con especial atención al termino de iniciar nuestra aplicación Kitematic y esta es la configuración de la terminal. para validar ello preciona el boton "exec" del cliente Kitematic

en mi equipo con ubuntu 19.04 el resultado fue el siguiente.

 Para solucionar ello solo hay que ir a la opción de configuración de Kitematic 

 
Con esto terminamos este post, esperoles ayude. saludos. desde México.

1 comentario:

StevenHWicker dijo...

Thanks for this. I really like what you've posted here and wish you the best of luck with this blog and thanks for sharing. Microsoft Certified: Azure IoT Developer Specialty