Mám systemd
kontejner běží a mohu se do něj přihlásit pomocí machinectl login <container>
. Jak mohu provést příkaz uvnitř kontejneru přímo, tj. bez předchozího přihlášení, provedení příkazu a následného odhlášení?
Jiný způsob, jak to vyjádřit, je, že hledám systemd
ekvivalent:
$ docker exec <container> <command>
nebo
$ ssh <host> <command>
Přijatá odpověď:
Zkuste 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
Výňatek z manuálové stránky:
Použijte shell (viz níže) nebo systemd-run(1) s přepínačem –machine=k přímému vyvolání jediného příkazu, buď interaktivně, nebo na pozadí.
(Příkaz shell
k dispozici od verze 225)