공유 전파 설정이 있는 볼륨 마운트

마운트 전파는 공유 방향과 하위 마운트까지의 영향 범위를 확인해 필요한 경우에만 허용하세요.

설명

Linux 바인드 마운트의 전파 설정은 새 하위 마운트가 호스트와 컨테이너 사이에 보이는 방식을 정합니다. shared와 rshared는 양방향 전파를 허용합니다. slave와 rslave는 호스트 쪽의 마운트 변경을 컨테이너가 받지만 반대 방향으로 돌려보내지는 않습니다. r 접두사는 중첩된 마운트까지 적용합니다.

일반 서비스에 필요하지 않은 전파는 데이터 노출이나 운영 의존성을 늘릴 수 있습니다. 전파 차단은 기존에 공유한 파일의 읽기·쓰기를 차단하는 것과는 다릅니다.

잠재적 영향

  • 새로 마운트한 데이터가 의도하지 않은 컨테이너에 보일 수 있습니다.
  • 양방향 전파와 마운트 변경 권한이 결합되면 컨테이너의 변경이 호스트나 다른 마운트에 영향을 줄 수 있습니다.

해결 방법

  • 전파가 필요하지 않으면 기본값인 rprivate를 유지하거나 목적에 맞는 비공유 설정을 사용하세요.
  • 필요한 경우 전파 방향, 하위 마운트와 실제 공유 대상을 확인하고 마운트 변경 권한을 최소화하세요.
  • 변경 후 필요한 데이터 접근이 유지되는지 시험하세요. 마운트 전파는 Linux 호스트 기능이며 Docker Desktop에서는 지원되지 않습니다.

예시

실제 이미지와 ENVVAR가 가리키는 호스트 경로를 준비하세요. 전파는 호스트의 원본 마운트 설정에도 영향을 받습니다.

변경 전

yaml
version: "3.2"
services:
  app:
    image: notreal
    volumes:
      - type: bind
        source: $ENVVAR/.whew/path/datapath
        target: /data
        bind:
          propagation: rshared

rshared는 중첩된 마운트 변경까지 양방향으로 전파할 수 있습니다.

변경 후

yaml
version: "3.2"
services:
  app:
    image: notreal
    volumes:
      - type: bind
        source: $ENVVAR/.whew/path/datapath
        target: /data
        bind:
          propagation: private

private는 해당 마운트의 전파를 차단합니다. 중첩된 마운트까지 비공개 전파를 적용하려면 기본값인 rprivate를 검토하세요. 파일 접근 권한은 별도로 제한해야 합니다.

참조