능글맞은 구렁이

Docker - Volume (읽기전용) 본문

DevOps/Docker

Docker - Volume (읽기전용)

보라색츄르 2026. 3. 2. 19:01

1. 읽기 전용 (read-only) 볼륨 이란?

볼륨은 기본적으로 -v로 마운트를 하면 read-write상태이다. (즉, 컨테이너가 읽고 쓰기 모두 가능)

하지만 뒤에 :ro를 붙이면 컨테이너는 읽기만 가능하다 

하지만 호스트에서는 여전히 수정 가능하다.

- docker run -d -p 3000:80 --rm --name feedback-app -v feedback:/app/feedback -v C:\workspace\DOCKER\data-volumes-01-starting-setup:/app:ro -v /app/node_modules feedback-node:volumes

 

2.왜 read-only를 사용할까?

개발환경에서 

  • 우리는 호스트에서 소스코드를 수정함
  • 컨테이너는 그 코드를 실행만 하면 됨
  • 컨테이너가 소스 파일을 수정할 필요는 없음

즉, 컨테이너가 실수로 소스코드를 변경하지 못하게 막기 위함이다.

 

3. 주의사항

전체 프로젝트를 마운트하면 /app 아래는 전부 읽기 전용이 된다. 

하지만 코드 안에 폴더에 파일을 저장하거나 임시 파일을 저장하는 로직이 있다면 마운트가 read-only라서 쓰기가 불가하다.  

 

따라서, 위와 같은 상황을 방지하기 위해서 파일을 저장하기 위한 더 구체적인 볼륨을 만드는 것이 좋다. 

도커는 상위 경로보다 더 구체적인 경로 볼륨을 우선하기 때문이다.

Comments