GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire un comando all'interno di un contenitore Systemd in esecuzione?

Ho un systemd container in esecuzione e posso accedervi con machinectl login <container> . Come posso eseguire un comando direttamente all'interno del container, cioè senza prima effettuare il login, eseguire il comando e poi uscire?

Un altro modo per dirlo è che sto cercando il systemd equivalente di:

$ docker exec <container> <command> 

o

$ ssh <host> <command>

Risposta accettata:

Prova 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

Estratto dalla manpage:

Usa shell (vedi sotto) o systemd-run(1) con l'opzione –machine=per invocare direttamente un singolo comando, in modo interattivo o in background.

(Il comando shell disponibile dalla v225)


Linux
  1. Anteprima della tecnologia:esecuzione di un contenitore all'interno di un contenitore

  2. Come usare Podman all'interno di un contenitore

  3. Come eseguire Chromium all'interno di un Chroot?

  4. Come eseguire un comando su un contenitore Docker in esecuzione

  5. Come eseguire un cron job all'interno di un contenitore docker

Come utilizzare il comando Esegui Docker con esempi

Come eseguire il contenitore Jenkins come servizio Systemd con Docker

Come eseguire i comandi Linux in background

Come eseguire i pod come servizi di sistema con Podman

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker