GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter une commande dans un conteneur Systemd en cours d'exécution ?

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)


Linux
  1. Aperçu technologique :Exécution d'un conteneur à l'intérieur d'un conteneur

  2. Comment exécuter une commande stockée dans une variable ?

  3. Comment exécuter Chromium dans un chroot ?

  4. Comment exécuter un programme dans un conteneur Docker ?

  5. Comment exécuter une tâche cron dans un conteneur docker

Comment utiliser la commande Docker Run avec des exemples

Comment exécuter Jenkins Container en tant que service Systemd avec Docker

Comment exécuter des commandes Linux en arrière-plan

Comment exécuter des pods en tant que services systemd avec Podman

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker