GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich einen Befehl in einem laufenden Systemd-Container aus?

Ich habe ein systemd Container läuft, und ich kann mich mit machinectl login <container> anmelden . Wie kann ich einen Befehl innerhalb des Containers direkt ausführen, d. h. ohne mich zuerst anzumelden, den Befehl auszuführen und sich dann abzumelden?

Anders ausgedrückt suche ich nach dem systemd Äquivalent von:

$ docker exec <container> <command> 

oder

$ ssh <host> <command>

Akzeptierte Antwort:

Versuchen Sie 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

Auszug aus der Manpage:

Verwenden Sie Shell (siehe unten) oder systemd-run(1) mit dem Schalter –machine=, um direkt einen einzelnen Befehl aufzurufen, entweder interaktiv oder im Hintergrund.

(Der Befehl shell verfügbar seit v225)


Linux
  1. Wie führen wir einen in einer Variablen gespeicherten Befehl aus?

  2. So führen Sie MySQL in einem Docker-Container aus

  3. So führen Sie einen Cron-Job in einem Docker-Container aus

  4. Führen Sie ein Shell-Skript über den Befehl docker-compose im Container aus

  5. Wie führe ich einen Befehl aus, nachdem ein bereits laufender, bestehender beendet wurde?

So verwenden Sie den Docker Run-Befehl mit Beispielen

So führen Sie Jenkins Container als Systemd-Dienst mit Docker aus

So führen Sie Linux-Befehle im Hintergrund aus

So führen Sie Pods als systemd-Dienste mit Podman aus

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus