능글맞은 구렁이
Docker - Volume (읽기전용) 본문
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라서 쓰기가 불가하다.
따라서, 위와 같은 상황을 방지하기 위해서 파일을 저장하기 위한 더 구체적인 볼륨을 만드는 것이 좋다.
도커는 상위 경로보다 더 구체적인 경로 볼륨을 우선하기 때문이다.
'DevOps > Docker' 카테고리의 다른 글
| Docker - Volume [ENV(환경변수), ARG(빌드 인수)] (0) | 2026.03.01 |
|---|---|
| Docker - Volumes 실습[바운드 마운트 생성] (0) | 2026.03.01 |
| Docker - Volumes 실습[ 익명 볼륨, 명명 볼륨 생성] (0) | 2026.02.24 |
| Docker - Volumes이란? (0) | 2026.01.18 |
| Docker - Docker Hub(image push&pull) (1) | 2024.02.06 |
Comments