我在正在运行的容器中编写了一个 github pull 脚本,以便容器可以获取更新的代码。但是我如何从主机调用此脚本?
我曾尝试过类似的事情,但没有成功。
lxc exec container-name -- gitPull.sh
lxc exec container-name --sh -c "cd ~ && ll"
我也尝试将目录从主机推送到 lxd 容器,但它不会将子目录复制到容器中。
有人可以帮忙吗?
非常感谢!
答案1
当你lxc exec
在 Ubuntu 容器上运行时,你会获得一个 root shell 并且你的主目录是/root
。
如果你正在使用非 root 账户(例如ubuntu
from ubuntu:18.04
),那么你可以使用以下命令进入该账户
lxc exec mycontainer -- sudo --login --user ubuntu
如果你想以用户身份运行命令ubuntu
,那么你可以
$ lxc exec mycontainer -- sudo --login --user ubuntu whoami
ubuntu
您在 中输入了错误lxc exec container-name --sh -c "cd ~ && ll"
。后面应该有一个空格,--
因为--
这是对主机 shell 的一个特殊指令,表示该lxc exec
命令应停止将任何后续选项读取为 的选项lxc exec
。例如,以下内容是错误的,因为-l
选项是由 处理的,lxc exec
而不是逐字给出作为在容器中运行的命令。
$ lxc exec mycontainer ls -l
Error: unknown shorthand flag: 'l' in -l
正确的是
$ lxc exec mycontainer -- ls -l
您可以通过运行将目录从主机推送到容器
$ lxc file push --recursive /home/myusername/myfiles/ mycontainer/home/ubuntu/
/home/myusername/myfiles/
主机上的目录树将被复制到容器mycontainer
内的(现有)目录/home/ubuntu/
(在该容器中)。