GNU/Linux >> Tutoriales Linux >  >> Fedora

Primeros pasos con Toolbox en Fedora Silverblue

En esta guía, discutiremos qué es Toolbox y cómo crear y administrar un entorno de desarrollo en contenedores usando Toolbox en Fedora Linux.

Introducción

En los últimos años, la virtualización de contenedores de Linux ha ganado mucho impulso. De hecho, la nueva generación de virtualización es la contenerización.

Hoy en día, los desarrolladores de aplicaciones utilizan principalmente contenedores como su entorno de desarrollo preferido. Existen muchas herramientas para crear y administrar contenedores de Linux. Podman , Docker , vagabundo son algunas aplicaciones populares de gestión de contenedores.

Hoy hablaremos de otra utilidad llamada Toolbox lo que facilita el uso de un entorno en contenedores para el desarrollo de software cotidiano.

¿Qué es la caja de herramientas?

Toolbox es una herramienta interna de Fedora para crear un entorno de línea de comandos en contenedores sobre su sistema base Fedora.

Es particularmente útil para configurar un entorno de desarrollo de software de usar y tirar donde se pueden instalar y usar herramientas y bibliotecas de desarrollo.

Toolbox está desarrollado específicamente para OSTree sistemas basados ​​como Fedora Core OS y Fedora Silverblue . Como ya sabrá, los sistemas basados ​​en OSTree son inmutables.

Toolbox se basa en imágenes de contenedores OCI y Podman. No requiere ningún root Privilegios para implementar contenedores. ¡Lo bueno es que la instalación y el uso de Toolbox son muy fáciles de usar y fáciles de recordar!

¿Por qué caja de herramientas?

El objetivo real del sistema operativo inmutable es desalentar la instalación de software en el sistema host y animar a los usuarios a instalar el software en contenedores.

A diferencia de los sistemas basados ​​en OSTree, los contenedores son completamente mutables. Para que pueda instalar sus herramientas, editores y SDK favoritos de desarrollo y depuración dentro de los contenedores. No se instala nada en el sistema host.

Para poner esto en términos sencillos, podemos implementar un contenedor mutable en un sistema operativo host inmutable con la ayuda de Toolbox.

¿Cómo funciona la caja de herramientas?

De forma predeterminada, Toolbox crea los contenedores en función de su sistema actual. Por ejemplo, si su sistema base es Fedora 35, Toolbox creará un contenedor basado en Fedora 35. En este contenedor, puede usar administradores de paquetes como yum o dnf para instalar sus aplicaciones preferidas. También puede crear contenedores basados ​​en otras versiones de Fedora.

Puede iniciar más de un contenedor a la vez y comenzar a trabajar en diferentes proyectos simultáneamente. Una vez que haya terminado con el contenedor, simplemente elimínelo y cree uno nuevo cuando lo desee. Nuevamente, el sistema host no se ve afectado de ninguna manera. De esta manera podemos mantener un sistema operativo anfitrión limpio. Esto también evitará drásticamente el desorden y reducirá el proceso de reinstalación del sistema operativo host.

Instalar Toolbox en Fedora

Toolbox viene preinstalado con Fedora Silverblue 30 y ediciones más recientes. En la estación de trabajo Fedora, puede instalarlo usando dnf o yum administradores de paquetes:

$ sudo dnf install toolbox

O,

$ sudo yum install toolbox

Primeros pasos con Toolbox en Fedora Silverblue

Toolbox proporciona una pequeña cantidad de comandos para crear, listar, ingresar y eliminar contenedores.

1. Mostrar la ayuda de la caja de herramientas

Si es nuevo en Toolbox, es mejor mostrar la sección de ayuda de Toolbox para obtener una idea de lo que hace cada comando. Para ver la ayuda de Toolbox, use cualquiera de los siguientes comandos:

$ toolbox --help
$ toolbox help
$ toolbox -h

Ahora comencemos con la creación de nuevos contenedores.

2. Crear un nuevo contenedor

Para crear un nuevo contenedor basado en su versión actual del sistema operativo Fedora, simplemente ejecute:

$ toolbox create

Este comando buscará la imagen base que se usará para construir el contenedor desde su sistema local. Si no se encuentra ninguna imagen local, se le pedirá que descargue la imagen correspondiente. Escriba y y la tecla ENTER para descargar la imagen.

Salida de muestra:

Image required to create toolbox container.
Download registry.fedoraproject.org/fedora-toolbox:33 (500MB)? [y/N]: y
Created container: fedora-toolbox-33
Enter with: toolbox enter

Toolbox descargará una imagen que coincida con la versión del sistema operativo de su sistema host actual desde el registro de Fedora y creará un nuevo contenedor basado en la imagen descargada. Las imágenes suelen ser una versión simplificada de las distribuciones reales.

2.1. Crear contenedores con nombre personalizado

La caja de herramientas asignará automáticamente un nombre único (por ejemplo, fedora-toolbox-33 ) al contenedor recién creado.

Si desea crear un contenedor con un nombre personalizado de su elección, use el --container , -c bandera seguida del nombre del contenedor como se muestra a continuación:

$ toolbox create --container mytoolbox-f33

O brevemente:

$ toolbox create -c mytoolbox-f33

Aquí, mytoolbox-f33 es el nombre del contenedor.

3. Cree un nuevo contenedor basado en una versión específica del sistema operativo

Como ya mencioné, Toolbox crea contenedores basados ​​en la versión actual del sistema operativo. Por ejemplo, si está ejecutando Fedora 34, Toolbox creará un contenedor basado en la imagen de Fedora 34.

Sin embargo, también puede crear contenedores basados ​​en otras versiones. Creé un contenedor Fedora 32 en mi edición Silverblue de Fedora 33 usando el siguiente comando:

$ toolbox create --release f32

O en breve,

$ toolbox create -r f32

4. Listar contenedores

Para enumerar todos los contenedores disponibles localmente en su sistema, ejecute:

$ toolbox list

Salida de muestra:

IMAGE ID      IMAGE NAME                                        CREATED
9659c2039e64  registry.fedoraproject.org/f32/fedora-toolbox:32  4 months ago
675192cc4238  registry.fedoraproject.org/fedora-toolbox:33      4 weeks ago

CONTAINER ID  CONTAINER NAME     CREATED         STATUS      IMAGE NAME
2cfb48d6a6c5  fedora-toolbox-32  4 months ago    exited      registry.fedoraproject.org/f32/fedora-toolbox:32
1f709997b871  fedora-toolbox-33  27 minutes ago  configured  registry.fedoraproject.org/fedora-toolbox:33

Como puede ver en el resultado anterior, tengo dos contenedores, a saber, fedora-toolbox-32 y fedora-toolbox-33 en mi sistema.

La sección superior de la salida muestra los detalles de las imágenes base utilizadas para crear los contenedores, como la identificación de la imagen, el nombre de la imagen y cuándo se crearon esas imágenes. En la parte inferior, verá los detalles de los contenedores, como la identificación del contenedor, el nombre del contenedor, cuándo se creó el contenedor y el estado del contenedor.

También puede mostrar los detalles del contenedor o los detalles de la imagen por separado. Para enumerar solo los detalles del contenedor, use --containers , -c opción:

$ toolbox list --containers
 CONTAINER ID  CONTAINER NAME     CREATED       STATUS   IMAGE NAME
 2cfb48d6a6c5  fedora-toolbox-32  4 months ago  running  registry.fedoraproject.org/f32/fedora-toolbox:32
 1f709997b871  fedora-toolbox-33  21 hours ago  running  registry.fedoraproject.org/fedora-toolbox:33

Para enumerar solo las imágenes, use --images , -i bandera:

$ toolbox list --images
 IMAGE ID      IMAGE NAME                                        CREATED
 9659c2039e64  registry.fedoraproject.org/f32/fedora-toolbox:32  4 months ago
 675192cc4238  registry.fedoraproject.org/fedora-toolbox:33      4 weeks ago

Tenga en cuenta que el nombre de los contenedores y los nombres de las imágenes se verán casi iguales, excepto la última parte de su nombre.

El nombre del contenedor suele tener guion (-) antes de la última parte de su nombre (por ejemplo, fedora-toolbox-33 ) y el nombre de la imagen tiene dos puntos (:) (por ejemplo, fedora-toolbox:33 ).

5. Entrar en los contenedores

Ya hemos creado los contenedores pero no hemos entrado en ellos. Así que entremos en un contenedor usando el comando:

$ toolbox enter

Una vez que ingresó al contenedor, el indicador de shell se antepone con un rombo símbolo como se muestra en el siguiente resultado:

⬢[[email protected] ~]$ 

¿Notó el símbolo de diamante en el extremo izquierdo de la indicación? Significa que estás dentro del contenedor.

Los contenedores se integran a la perfección con su sistema operativo actual. Dentro de cada contenedor, encontrará su nombre de usuario y permisos existentes.

Puede acceder a su directorio de inicio y a varias otras ubicaciones de la misma forma que lo hace desde su sistema host. También puede acceder tanto al sistema como a la sesión D-Bus, el diario del sistema y Kerberos, etc.

Cada contenedor contiene herramientas de líneas de comando comunes, incluido un administrador de paquetes (por ejemplo, DNF en Fedora). Por lo tanto, puede instalar y probar cualquier software dentro del contenedor.

Por ejemplo, el siguiente comando instala todas las herramientas de desarrollo necesarias:

$ sudo yum groupinstall "Development Tools"

5.1. Entrar en un contenedor específico

Cuando ejecute la toolbox enter comando sin ninguna opción, abre el contenedor de caja de herramientas predeterminado. El contenedor predeterminado es el que se basa en el sistema operativo de su host.

Si desea abrir un contenedor diferente, mencione explícitamente su nombre como se muestra a continuación:

$ toolbox enter -c fedora-toolbox-32

Aquí, -c se utiliza para hacer referencia al nombre del contenedor y fedora-toolbox-32 es el nombre del contenedor.

6. Salir de la caja de herramientas

Una vez que haya terminado con el contenedor, simplemente escriba exit para cerrar sesión en el contenedor.

$ exit

7. Ejecute comandos en contenedores sin entrar en ellos

Una característica notable de Toolbox es que puede ejecutar comandos en un contenedor sin ingresarlos. El siguiente comando muestra la versión de distribución del contenedor predeterminado del sistema host:

$ toolbox run cat /etc/redhat-release
Fedora release 33 (Thirty Three)

Cuando ejecuta la toolbox run comando sin ninguna opción, ejecutará los comandos en el contenedor predeterminado. También puede ejecutar comandos en otros contenedores especificando su nombre con --container , -c bandera:

$ toolbox run -c fedora-toolbox-32 cat /etc/redhat-release
Fedora release 32 (Thirty Two)

8. Deja de ejecutar contenedores

Después de salir del contenedor, seguirá funcionando hasta que lo detenga. No hay un comando de caja de herramientas directo para detener un contenedor en ejecución. Sin embargo, podemos usar podman comando para detener los contenedores de la caja de herramientas:

$ podman container stop fedora-toolbox-33

Recuerde que Toolbox usa podman debajo del capó.

9. Eliminar contenedores e imágenes de la caja de herramientas

Si no desea un contenedor o su imagen base, simplemente puede deshacerse de ellos como se muestra a continuación.

Antes de eliminar un contenedor, asegúrese de haber salido de ese contenedor.

Para eliminar un contenedor, ejecute:

$ toolbox rm fedora-toolbox-32

El comando anterior elimina el contenedor llamado fedora-toolbox-32 .

Para eliminar a la fuerza un contenedor incluso si se está ejecutando, use --force , -f bandera:

$ toolbox rm -f fedora-toolbox-32

Para eliminar todos los contenedores, use --all , -a bandera:

$ toolbox rm --all

Verifique si el contenedor se eliminó enumerando los contenedores disponibles:

$ toolbox list

Del mismo modo, puede eliminar las imágenes de la caja de herramientas usando toolbox rmi comando como a continuación:

$ toolbox rmi fedora-toolbox:32

Tenga en cuenta la i en el comando anterior. El rm el comando elimina los contenedores mientras que rmi El comando elimina las imágenes. Además, no olvide mencionar el nombre correcto de la imagen que desea eliminar.

Para eliminar todas las imágenes, use --all , -a bandera:

$ toolbox rmi --all

Use podman para administrar contenedores e imágenes de la caja de herramientas

Dado que Toolbox es solo el envoltorio de podman, puede usar directamente los comandos de podman para administrar contenedores.

Para listar los contenedores de la caja de herramientas usando el comando podman, ejecute:

$ podman ps -a

Para enumerar las imágenes de la caja de herramientas con podman, ejecute:

$ podman images

Para iniciar un contenedor:

$ podman start fedora-toolbox-33

Para ver las estadísticas de uso de recursos en vivo de todos los contenedores en ejecución:

$ podman stats

Para detener un contenedor:

$ podman stop fedora-toolbox-33

Inspeccionar contenedores:

$ podman inspect fedora-toolbox-33

Eliminar contenedor:

$ podman rm <container-name>

Eliminar imagen:

$ podman rmi <image-name>

Hay muchos comandos podman disponibles. Puede ver todos los comandos y opciones generales disponibles en la sección de ayuda de podman:

$ podman --help

Conclusión

Los contenedores no son solo para fines experimentales y de aprendizaje, también son ideales para entornos de desarrollo aislados en los que puede trabajar en diferentes proyectos en diferentes versiones del sistema operativo. ¡Toolbox hace que la gestión de contenedores sea mucho más fácil y mejor!


Fedora
  1. Comenzando con Zsh

  2. Comenzando con ls

  3. Primeros pasos con Samba para la interoperabilidad

  4. Primeros pasos con PostgreSQL en Linux

  5. ¿Cómo empezar con Juju?

Primeros pasos con el administrador de paquetes de Nix

Primeros pasos con Docker Compose en Linux

Primeros pasos con systemctl

Primeros pasos con cPanel

Primeros pasos con SiteApps

Primeros pasos con cPanel/WHM