나는 실행 중인 lxc ubuntu 컨테이너에서 더 복잡한 작업을 수행하려고 하는데, 이 간단한 예를 사용하여 내 문제를 설명할 수 있습니다. 내가 달릴 때
sudo lxc-attach -n container1 -- echo "test" > test.txt
셸 스크립트에서는 test.txt
내 컨테이너 내부에서 찾을 것으로 예상했지만 대신 내 호스트 컴퓨터에서 찾았습니다! 무엇이 잘못되었나요?
답변1
좀 놀다가 문제를 발견했습니다. 앞으로도 같은 문제에 부딪힐 수밖에 없는 불쌍한 영혼들을 위해 질문과 답변을 여기에 남깁니다.
핵심은 전체 명령을 실행하기 전이 아니라 파일에 액세스할 때만 컨테이너에 연결하는 것입니다. 반직관적으로, 먼저 컨테이너에 연결하고 명령을 실행하는 대신 셸은 먼저 >
로컬에서 파일을 해석하고 생성합니다. 이 문제를 해결하기 위해 tee
필요할 때만 컨테이너에 연결합니다. 해결책은 다음과 같습니다.
echo "test" | sudo lxc-attach container1 -- tee test.txt