
Я пытаюсь скопировать файл с помощью lxc, теперь я уже отчаялся. Вот некоторые команды, которые я пробовал:
#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
Это ->
выход
Контейнеры создаются с помощью lxc-
и не отображаются в lxc list
списке, но в lxc-ls
списке есть.
Любая помощь приветствуется.
решение1
Попробуй это:
cat 2.sh | lxc-attach -n containerName tee /root/2.sh
Примечание:
Я протестировал это с контейнерами docker, так как в данный момент у меня нет lxc. С docker это работает, когда -i
указан параметр для интерактивного сеанса. Я не вижу соответствующего параметра для lxc-attach
, я не знаю, необходимо ли это или возможно.
решение2
Это решение работает только в том случае, если LXC находится на машине, к которой можно подключиться по SSH,НЕ РАБОТАЕТ С ВИРТУЛИЗИРОВАННЫМ LXC. Вам нужен доступ к папкам lxc!
cp /root/input/2.sh /var/lib/lxc/NAME_LXC/rootfs/root/2.sh
Правда в том, что мне сложно понять LXC/LXD. Теперь я понимаю многие вещи и мне стало яснее, как это работает сзади
Хитрость в том, что все основано на физических файлах в этом пути./var/lib/lxc/