J'ai un systemd
conteneur en cours d'exécution, et je peux m'y connecter avec machinectl login <container>
. Comment puis-je exécuter une commande directement à l'intérieur du conteneur, c'est-à-dire sans d'abord me connecter, exécuter la commande, puis me déconnecter ?
Une autre façon de le dire est que je cherche le systemd
équivalent de :
$ docker exec <container> <command>
ou
$ ssh <host> <command>
Réponse acceptée :
Essayez 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
Extrait de la page de manuel :
Utilisez shell (voir ci-dessous) ou systemd-run(1) avec le commutateur –machine=pour invoquer directement une seule commande, de manière interactive ou en arrière-plan.
(La commande shell
disponible depuis la v225)