설명
여러 컨테이너가 같은 볼륨이나 호스트 경로를 함께 쓸 수 있습니다. 공유 자체는 유효한 구성이지만, 쓰기 권한을 가진 컨테이너의 변경이 다른 컨테이너에도 영향을 줍니다.
잠재적 영향
조정되지 않은 동시 쓰기는 데이터를 손상시킬 수 있고, 침해된 컨테이너가 공유 파일을 변조하면 이를 사용하는 다른 서비스에 영향을 줄 수 있습니다.
해결 방법
공유가 필요하지 않은 데이터는 분리하세요. 필요한 공유에는 쓰기 주체를 정하고, 읽기만 필요한 컨테이너는 읽기 전용으로 마운트하세요.
예시
같은 ./logic 경로를 쓰던 backend를 별도 ./bin 경로로 분리합니다. 두 컨테이너가 실제로 같은 파일을 필요로 한다면 이 변경 대신 적절한 공유 권한과 동시 접근 방식을 정해야 합니다.
변경 전
yaml
version: "3"
services:
frontend:
build: frontend
volumes:
- ./logic:/app
backend:
build: backend
volumes:
- ./logic:/app
변경 후
yaml
version: "3"
services:
frontend:
build: frontend
volumes:
- ./logic:/app
backend:
build: backend
volumes:
- ./bin:/app