Podman 볼륨 마운트: 언제 :z 또는 :Z 접미사를 사용합니까?

Podman 볼륨 마운트: 언제 :z 또는 :Z 접미사를 사용합니까?

Podman 매뉴얼 페이지볼륨 마운트/바인드에 대해 설명합니다.

SELinux와 같은 레이블 지정 시스템에서는 컨테이너에 마운트된 볼륨 콘텐츠에 적절한 레이블을 배치해야 합니다. 레이블이 없으면 보안 시스템으로 인해 컨테이너 내부에서 실행되는 프로세스가 콘텐츠를 사용하지 못할 수 있습니다. 기본적으로 Podman은 OS에서 설정한 레이블을 변경하지 않습니다.

컨테이너 컨텍스트에서 레이블을 변경하려면 두 접미사 중 하나를 추가하면 됩니다. :지또는:지볼륨 마운트에. 이러한 접미사는 Podman에게 공유 볼륨의 파일 객체 레이블을 다시 지정하도록 지시합니다. 그만큼옵션은 Podman에게 두 개의 컨테이너가 볼륨 콘텐츠를 공유한다고 알려줍니다. 결과적으로 Podman은 공유 콘텐츠 라벨을 사용하여 콘텐츠에 라벨을 지정합니다. 공유 볼륨 레이블을 사용하면 모든 컨테이너가 콘텐츠를 읽고 쓸 수 있습니다. 그만큼옵션은 Podman에게 공유되지 않은 비공개 라벨을 사용하여 콘텐츠에 라벨을 지정하도록 지시합니다.

그만큼문제 해결 페이지그러나 거의 동일한 단어로 동일한 내용을 설명합니다.

이제 Podman과 SELinux를 처음 접하게 되면서 실제로 언제 무엇을 사용해야 하는지 궁금합니다. SELinux로 인해 발생할 수 있는 권한 오류가 발생하면 두 스위치 중 하나가 문제를 해결할 수 있다는 것을 알고 있습니다. 그런데 이 두 가지(소문자 z와 대문자 Z) 옵션의 차이점은 무엇입니까?

그것이 말하는 차이점은 다음과 같습니다.

  • :z공유 콘텐츠 라벨을 만듭니다.
  • :Z비공개 비공유 라벨을 생성합니다.

이것은 많은 새로운 단어를 소개합니다:

  • 공유 및 비공유(무슨 뜻인가요?)
  • ??? vs 비공개(다시 말하지만 이것이 나에게 무엇을 말해야 할지 명확하지 않습니다)
  • 또한 한 옵션에는 "콘텐츠 라벨"이라고 표시되어 있고 다른 옵션에는 "라벨"만 표시되어 있습니다. 이 두 용어 사이에 차이가 있나요, 아니면 같은가요?

그러면 이 문맥에서 이 단어들은 무엇을 의미합니까? 그리고 마지막 질문: 언제 무엇을 사용해야 합니까?

답변1

"공유"는 여러 컨테이너가 볼륨을 공유할 수 있음을 의미합니다. "공유되지 않음"은 공유할 수 없다고 말합니다. 좀 더 자세히 설명하면 :z각 컨테이너 내부의 볼륨에 적절한 레이블( container_file_t)을 지정하면 주어진 볼륨이 여러 컨테이너 내부에 병렬로 마운트될 수 있으며 볼륨 마운트가 있는 실행 중인 모든 컨테이너가 해당 볼륨에 액세스할 수 있습니다. 호스트 또는 실행 중인 컨테이너의 모든 변경 사항은 실행 중인 모든 컨테이너에 표시됩니다.

"비공개"는 또한 컨테이너 내부에 사용된 라벨이 해당 컨테이너에만 공개된다는 의미입니다. 파일 시스템 수준에는 추가 계층이 없으므로 이는 호스트 관점에서도 콘텐츠에 비공개로 레이블이 지정된다는 의미입니다. 동일한 마운트를 가진 컨테이너는 이에 대한 액세스를 공유할 수 없습니다. 적어도 Podman의 경우 마지막 컨테이너가 승리하며 볼륨에 액세스할 수 있는 유일한 컨테이너입니다. 여기에서 "개인"의 반대는 내 생각에 "공유"일 것입니다. 이는 문서에 반대 용어("공유 공유 레이블")가 없는 이유를 설명합니다.

"콘텐츠 라벨"과 "라벨" 사이에 어떤 의미가 있는지 잘 모르겠습니다. 단, 이러한 컨테이너에서 생성된 모든 콘텐츠는 호스트를 포함하여 이에 따라 라벨이 지정되므로 다음과 같은 파일이 표시됩니다. 라벨 container_file_t.

보다이 게시물은 Podman의 차이점을 더 자세히 보여줍니다..Docker는 동일한 차이점을 가지고 있습니다..

답변2

"심층적인 보안에는 관심이 없습니다. 그냥 작동하도록 하세요.": 소문자z

생산적인 환경: 자본을 고려 Z하되 해당 볼륨이 연결된 마지막 컨테이너만 액세스할 수 있다는 점에 유의하세요.

참고: 이것은 쉼표로 구분된 목록이므로 예를 들어 결합하려는 경우 가 ro됩니다 :ro,z.

관련 정보