Instalación linux

Para comenzar con la instalación ya que no se encuentra en los repositorios, lo más fácil instalar la llave y aprovecharse de la gestión de paquetes

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
//añadir el repositorio estable
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
//e instalar
 $ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

Finalmente comprobar la instalación:

$ sudo docker run hello-world

El proceso llegó a ocuparme unos 300 MB adicionales, obviamente sin contenedores el consumo de recursos de objeción es inapreciable. Para más opciones de versión de instalación ver https://docs.docker.com/engine/install/ubuntu/

Interfaces usuario GUIs

Es posible tanto por línea de comandos como por interfaz desktop, sin embargo, este último solo está disponible para Apple y Windows. Alternativas para linux:

$ docker pull portainer/portainer
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
$ http://localhost:9000/
//configurar administrador, seleccionar el ambiente y entrar. 1.24.1 versión actual
//en este momento aparece la versión 2.0 Pero: Support for external endpoints has been removed.

Portainer.io, localhost 9000

$ sudo docker run -d –restart=unless-stopped -p 8000:80 -p 443:443 rancher/rancher

Probando Dockstation.io

Instalando el dockstation….deb son unos 50MB., despues en necesario el docker-compose y crear una cuenta en dockstation.

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Creando contenedores

Ejemplo creando test de Alpine versión latest:

docker create -i -t -v '/home/raul/Docker/test/:/var/www/html' --name testDocker alpine:latest /bin/sh

En este caso para el tipo de máquina alpine que utiliza busybox se debe utilizar en la opción de ejecutable para bash /bin/sh, pero para la familia debian: /bin/bash, sino bota el siguiente error: exec: \”/bin/bash\”: stat /bin/bash: no such file or directory”: unknown

Para tomar ventaja de Docker en la creación de contenedores hacerlo a través de docker-compose, instalar:

$ apt install docker-compose

Y luego por medio del fichero de configuración… crear el .yml y desde ese directorio se ejecuta:

$ docker compose up

$ docker compose build //forzar el build cuando modificamos después de up.

Una vez funcionando existe la opción de conectarse, de forma que los cambios en la aplicación se puedan ver directamente en vivo usando watch:

$docker compose watch

Comandos útiles

//listar imágenes en la máquina
$ docker images
//contadores
$ docker ps -a
//borrar docker ver también el artículo sobre la limpieza de Docker
$ docker rm midocker
//iniciarlo
$ docker start midocker
//entrar:
$ docker attach midocker

//Enumerar:
$ docker images -a
//Eliminar
$ docker rmi Image Image

//Eliminar todos recursos (imágenes, contenedores, volúmenes y redes, no asociados con un contenedor)
$ docker system prune
//Eliminar contenedores detenidos e imágenes no utilizadas (no solo aquellas pendientes)
$ docker system prune -a

$ docker logs midocker //añadir –follow -f para dejar abierto

$ docker rename midocker midocker-old

docker create vs docker build

“docker create” y “docker build” son dos comandos de Docker con diferentes objetivos.

docker create se utiliza para crear un nuevo contenedor a partir de una imagen existente. El contenedor resultante se crea en un estado detenido y se puede iniciar con el comando docker start. El comando docker create es útil cuando deseas crear un contenedor, pero aún no deseas iniciarlo.

Por otro lado, docker build se utiliza para construir una nueva imagen de Docker a partir de un archivo Dockerfile. El comando docker build lee el archivo Dockerfile y crea una nueva imagen a partir de él, con todas las instrucciones especificadas en el archivo Dockerfile. Una vez que se completa el proceso de construcción, se crea una nueva imagen que se puede utilizar para crear y ejecutar contenedores.

En resumen, docker create se utiliza para crear un nuevo contenedor a partir de una imagen existente, mientras que docker build se utiliza para construir una nueva imagen de Docker a partir de un archivo Dockerfile.

Ejemplos

Contenedor Nginx:

$ sudo docker run –detach –name web nginx:latest

$ docker-compose exec midocker bash //desde el dir con el .yml

Las flag –interactive y –tty, (-it), crea el input stream (stdin), así como dejar un terminal virtual para el contenedor. (Ctrl+p+q)

¿Cómo se puede controlar donde se toma todo el espacio de almacenamiento local Docker?

Para controlar dónde se toma todo el espacio de almacenamiento local en Docker, puedes seguir los siguientes pasos:

  1. Verificar el espacio utilizado: Primero, verifica cuánto espacio se está utilizando actualmente en tu almacenamiento local de Docker. Puedes ejecutar el siguiente comando en la línea de comandos:
docker system df

Este comando mostrará una descripción detallada del uso del almacenamiento, incluyendo el espacio utilizado por las imágenes, los contenedores, los volúmenes y las redes.

  1. Eliminar imágenes y contenedores no utilizados: Puedes liberar espacio eliminando imágenes y contenedores que no estén en uso. Utiliza los siguientes comandos:
  • Eliminar todos los contenedores detenidos:
docker container prune
  • Eliminar todas las imágenes no utilizadas:
docker image prune
  1. Limpiar volúmenes no utilizados: Si tienes volúmenes que no están en uso, también puedes eliminarlos para liberar espacio. Puedes ejecutar el siguiente comando:
docker volume prune
  1. Configurar el almacenamiento en otro directorio: Si deseas controlar dónde Docker almacena sus datos, puedes configurar la ubicación del directorio de datos. Para hacerlo, sigue estos pasos:
  • Detén el servicio de Docker:
sudo systemctl stop docker
  • Mueve el directorio /var/lib/docker a la ubicación deseada:
sudo mv /var/lib/docker /ruta/deseada/docker
  • Crea un enlace simbólico desde la nueva ubicación al directorio original:
sudo ln -s /ruta/deseada/docker /var/lib/docker
  • Reinicia el servicio de Docker:
sudo systemctl start docker

Después de estos pasos, Docker utilizará el nuevo directorio como ubicación para el almacenamiento de datos.

Recuerda tener precaución al liberar espacio o cambiar la ubicación del almacenamiento, ya que podría afectar los contenedores en ejecución y los datos almacenados. Asegúrate de tener una copia de seguridad adecuada antes de realizar cambios importantes.

¿Estoy utilizando Ubuntu desktop no encuentro docker almacenamiento en /var/lib/docker, donde más podría estar?

Si estás utilizando Ubuntu Desktop, es posible que Docker almacene sus datos en un directorio diferente al /var/lib/docker. Puedes verificar la ubicación del almacenamiento de Docker utilizando el siguiente comando:

docker info --format '{{.DockerRootDir}}'

Este comando mostrará la ubicación del directorio raíz de Docker, donde se almacenan los datos del sistema.

Una vez que tengas la ubicación del directorio raíz de Docker, puedes seguir los pasos mencionados anteriormente para liberar espacio o cambiar la ubicación del almacenamiento.

Además, ten en cuenta que Docker en Ubuntu puede utilizar un controlador de almacenamiento diferente, como overlay2, aufs, btrfs, etc. Dependiendo del controlador utilizado, los datos de Docker pueden almacenarse en diferentes ubicaciones del sistema. Por lo tanto, es importante verificar el controlador de almacenamiento utilizado por Docker en tu sistema y buscar en la ubicación correspondiente.

Puedes verificar el controlador de almacenamiento utilizando el siguiente comando:

docker info --format '{{.Driver}}'

Este comando mostrará el controlador de almacenamiento utilizado por Docker en tu sistema. Luego, puedes buscar la ubicación correspondiente según el controlador utilizado.

No encuentro los contenedores y los volúmenes tras la instalación Docker-desktop en Ubuntu

El motivo es porque la versión de Docker-desktop para Linux, es diferente que la fabricada para Windows porque la de Linux hace uso de un entorno virtual. Por ello crea un nuevo contexto, más sobre los contextos en Docker Linux en: https://docs.docker.com/engine/context/working-with-contexts/

Este entorno virtualizado añade la complejidad de login, por lo que exige tener funcionando ‘pass’, ver detalles en: https://docs.docker.com/desktop/get-started/#why-docker-desktop-for-linux-runs-a-vm

Categorías: LinuxServidor

Admin

Becommerce.es es una colección de mis notas a título personal, use at your own risk.

0 comentarios

Deja un comentario