buildah 설치에서 심볼릭 링크는 무엇을 합니까?

buildah 설치에서 심볼릭 링크는 무엇을 합니까?

이와 같이 buildah 스크립트를 실행하면,

ctr=$(buildah from alpine:3)
mnt=$(buildah mount "$ctr")
ln -sf "$PWD/foo" "$mnt/foo"
buildah commit $ctr "myimage"

생성된 디렉터리가 컨테이너 외부에 연결되나요?

답변1

그 결과 symlink파일 시스템 네임스페이스 내에 마운트된 볼륨에 대한 포인터가 생성 됩니다.$PWD/foo 컨테이너에.

단순화를 위해 다음과 같이 가정해 보겠습니다.

ln -sf "/root/bar" "$mnt/foo"

/foo컨테이너 내부에 있는 기호 링크는 이 디렉터리를 참조합니다./root/bar

답변2

ln -sf "$PWD/foo" "$mnt/foo"

디렉터리 대신 기호 링크를 만듭니다. 기호 링크는 $mnt이름이 지정된 디렉터리에 생성되고( 컨테이너 이미지 foo와 같이 종료됨 ) 현재 값에 대한 포인터를 text 로 저장합니다 . 그러면 심볼릭 링크가 컨테이너 이미지에 저장되고 필요에 따라 압축이 풀립니다./foo$PWD/foo

링크가 연결되는 위치는 링크가 역참조된 시기와 역참조한 사람에 따라 다릅니다. 생성 후 즉시 액세스하면 $PWD/foo셸의 현재 파일 시스템 네임스페이스 내에서 액세스하게 됩니다. 보다 일반적으로는 액세스하는 프로세스의 파일 시스템 네임스페이스에 있는 항목 $PWD/foo( $PWD위 명령이 실행될 때의 값) 을 가리킵니다 . "컨테이너에서" 실행 중인 프로세스에 의해 역참조되면 $PWD/foo해당 파일 시스템 네임스페이스를 가리킵니다.

관련 정보