J'ai écrit un script d'extraction github dans le conteneur en cours d'exécution afin que celui-ci puisse obtenir les codes mis à jour. Mais comment puis-je appeler ce script à partir de la machine hôte?
J'ai essayé avec quelque chose comme ça mais sans succès.
lxc exec container-name -- gitPull.sh
lxc exec container-name --sh -c "cd ~ && ll"
J'ai également essayé de pousser un répertoire de l'hôte vers les conteneurs lxd, mais il ne copie pas le sous-répertoire dans le conteneur.
Quelqu'un pourrait-il aider?
Merci beaucoup!
Lorsque vous exécutez lxc exec
sur un conteneur Ubuntu, vous obtenez un shell racine et votre répertoire personnel est /root
.
Si vous utilisez un compte non root (tel que ubuntu
de ubuntu:18.04
), vous pouvez obtenir un shell dans ce compte avec
lxc exec mycontainer -- Sudo --login --user ubuntu
Et si vous voulez exécuter une commande en tant qu’utilisateur ubuntu
, alors vous pouvez
$ lxc exec mycontainer -- Sudo --login --user ubuntu whoami
ubuntu
Vous avez une faute de frappe dans lxc exec container-name --sh -c "cd ~ && ll"
. Il devrait y avoir un espace après --
parce que --
est une instruction spéciale pour le shell de votre hôte qui dit que la commande lxc exec
doit cesser de lire les options suivantes comme des options pour lxc exec
. Par exemple, ce qui suit est incorrect, car l'option -l
est traitée par lxc exec
au lieu d'être transmise mot pour mot dans le conteneur.
$ lxc exec mycontainer ls -l
Error: unknown shorthand flag: 'l' in -l
Le correct serait
$ lxc exec mycontainer -- ls -l
Vous pouvez envoyer un répertoire de l'hôte au conteneur en exécutant
$ lxc file Push --recursive /home/myusername/myfiles/ mycontainer/home/ubuntu/
L'arborescence de répertoires /home/myusername/myfiles/
sur l'hôte sera copiée dans le conteneur mycontainer
à l'intérieur du répertoire (existant) /home/ubuntu/
(dans ce conteneur).