Estou tentando copiar um arquivo com lxc, agora já estou desesperado. Aqui estão alguns comandos que eu tentei:
#temp=$(cat 2.sh)
#lxc-attach -n containerName echo $temp > /root/2.sh
#lxc-attach -n containerName cat /root/2.sh
->
#temp=$(cat 2.sh)
#lxc-attach -n containerName -- bash -c 'echo $temp > /root/2.sh'
#lxc-attach -n containerName cat /root/2.sh
->
#lxc-attach -n containerName -- bash -c 'echo $(cat 2.sh) > /root/2.sh'
->cat: 2.sh: No such file or directory
#lxc-attach -n containerName -- bash -c 'echo "$(cat 2.sh)" > /root/2.sh'
->cat: 2.sh: No such file or directory
#lxc file push 2.sh containerName/root/
->Error: not found
A ->
é a saída
Os contêineres são construídos com lxc-
e não aparecem na lxc list
lista, mas na lxc-ls
lista.
Qualquer ajuda é bem vinda
Tente isto:
Observação:
Eu testei isso com contêineres do docker, pois não tenho lxc disponível no momento. Com o docker, isso funciona quando o
-i
parâmetro para uma sessão interativa é especificado. Não vejo um parâmetro correspondente paralxc-attach
, não sei se isso é necessário ou possível.Esta solução só funciona caso o LXC esteja em uma máquina na qual você possa se conectar com SSH, NÃO FUNCIONA COM LXC VIRTULIZADO . Você precisa acessar as pastas lxc!
cp /root/input/2.sh /var/lib/lxc/NAME_LXC/rootfs/root/2.sh
A verdade é que é uma bagunça para mim entender LXC/LXD. Agora eu entendo muitas coisas e ficou mais claro para mim como funciona por trás
O truque é que tudo é baseado em arquivos físicos neste caminho
/var/lib/lxc/