- 컨테이너의 파일 시스템은 단일 디스크로 여러 출처로부터 합쳐 컨테이너에 전달한 가상 파일 시스템
- 이 출처는 기본적으로 이미지 레이어와 컨테이너의 기록 가능 레이어로 구성
- 이미지 레이어:
- 읽기 전용, 모든 컨테이너가 공유
- 이미지를 내려받은 순간부터 삭제할 때 까지 로컬 컴퓨터의 이미지 레이어에 존재
- 기록 가능 레이어:
- 읽고 쓰기 가능, 각 컨테이너가 따로 갖는다.
- 컨테이너를 실행할 때 생성되며 컨테이너를 삭제할 때 함께 삭제된다.
이미지 레이어에 포함된 파일의 내용 수정
- 도커는 기록 중 복사(copy-on-write)라는 방법을 사용해 읽기 전용 레이어의 파일을 수정할 수 있다.
- 컨테이너에서 이미지 레이어에 포함된 파일을 수정하려 하면
- 도커가 이 파일을 기록 가능 레이어로 복사해 온다.
- 기록 가능 레이어에서 파일을 수정한다.
001) # 컨테이너를 실행해 이미지 레이어에 포함된 파일의 내용을 출력
002) ➜ docker container run --name f1 diamol/ch06-file-display
003) https://www.manning.com/books/learn-docker-in-a-month-of-lunches
004)
005) # 파일을 수정한 다음 다시 변경된 파일 내용을 확인한다.
006) ➜ echo "http://eltonstoneman.com" > url.txt
007) ➜ cat url.txt
008) http://eltonstoneman.com
009) ➜
010) ➜ docker container cp url.txt f1:/input.txt
011) Successfully copied 2.05kB to f1:/input.txt
012) ➜
013) ➜ docker container start --attach f1
014) http://eltonstoneman.com
- 003: 이미지 레이어 포함된 파일(/input.txt)로 실행된 컨테이너의 실행 결과
- 010: 호스트 머신의 파일로 컨테이너의 파일 교체
- 014: 변경된 파일로 실행된 결과가 변화