설명
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를 검토하세요. 파일 접근 권한은 별도로 제한해야 합니다.