GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar un comando dentro de un contenedor Systemd en ejecución?

Tengo un systemd contenedor en ejecución, y puedo iniciar sesión en él con machinectl login <container> . ¿Cómo puedo ejecutar un comando dentro del contenedor directamente, es decir, sin primero iniciar sesión, ejecutar el comando y luego cerrar sesión?

Otra forma de decirlo es que estoy buscando el systemd equivalente a:

$ docker exec <container> <command> 

o

$ ssh <host> <command>

Respuesta aceptada:

Prueba systemd-run :

# systemd-nspawn -D <machine-root> -b 3 --link-journal host

# systemd-run --machine <machine-name> env
Running as unit run-1356.service.

# journalctl --machine <machine-name> -u run-1356 -b -q
Oct 30 07:45:09 jessie-64 systemd[1]: Started /usr/bin/env.
Oct 30 07:45:09 jessie-64 env[37]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Extracto de la página de manual:

Use shell (vea a continuación) o systemd-run(1) con el interruptor –machine=para invocar directamente un solo comando, ya sea de forma interactiva o en segundo plano.

(El comando shell disponible desde v225)


Linux
  1. ¿Cómo ejecutar Chromium dentro de un Chroot?

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. Cómo ejecutar MySQL en un contenedor Docker

  4. Cómo ejecutar un trabajo cron dentro de un contenedor docker

  5. Ejecute un script de shell desde el comando docker-compose, dentro del contenedor

Cómo usar el comando de ejecución de Docker con ejemplos

Cómo ejecutar Jenkins Container como servicio Systemd con Docker

Cómo ejecutar comandos de Linux en segundo plano

Cómo ejecutar pods como servicios systemd con Podman

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker