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
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.
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"
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
● 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.
¿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 comandosudo 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.