728x90
컨테이너 볼륨
컨테이너를 삭제하면 컨테이너 계층 (Writable Layer)의 데이터가 모두 삭제 되기 때문에 컨테이너 데이터의 영속성을 유지하기 위해서 볼륨을 활용
- 컨테이너 이미지는 readonly 속성임, 컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장되며 해당 방식을 Copy-on-Write 방식이라 하며, 파일을 효율적으로 공유하고 복사하는 방법임
- 컨테이너의 파일 시스템을 관리하기 위해서는 리눅스 커널이 지원하는 Storage 드라이버를 통해 Union File System을 이용해서 RO, RW 레이어가 하나인것 처럼 동작해줌
- 볼륨을 활용하지 않은 컨테이너가 동작하지 않으면, 데이터가 영구적으로 유지 되지 않기 때문에, 다른 프로세스나 컨테이너가 해당 데이터를 필요로 하는 경우 사용할 수 없음
데이터를 보존하는 방법
Docker HOST에서 저장소 공간을 만들어서 컨테이너가 만들어주는 데이터를 디스크에 보존하도록 함, Volume 옵션을 사용하여 실제호스트 디렉토리에 쌓이게하는 것인데 이것을 볼륨 마운트라고 함, 컨테이너가 삭제되도 데이터가 영구적으로 보존할 수 있음
Volume 옵션 사용
-v <host path>:<container mount path>
-v <host path>:<container mount path>:<read write mode>
-v <container mount path>
- docker run -d -v /dbdata:/var/lib/mysql -e MYSQL..PASSWORD=pass mysql:latest (호스트의 dbdata에 기록되게 끔 설정, 컨테이너가 도커호스트의 디렉토리를 수정하는건 매우 안좋음 보안적인 이슈 예시라 참고, ro옵션을 생략하면 rw옵션임)
- docker run -d -v /webdata:/var/www/html:ro httpd:latest (실제로 호스트의 webdata가 readonly로 서비스가 되게끔 설정)
- docker run -d -v /var/lib/mysql -e MYSQL..PASSWORD=pass mysql:latest (임의 디렉토리를 만들어서 자동 마운트가 되게끔 설정)
컨테이너끼리 데이터 공유하는 방법
- 볼륨 옵션으로 디렉토리에 마운트한 데이터는 새로운 컨테이너에서 공유가 가능함
- -v 옵션을 사용해서 공유
'DOCKER' 카테고리의 다른 글
[DOCKER] DOCKERFILE 명령어 정리 (0) | 2022.05.11 |
---|---|
[DOCKER] 도커컴포즈 (0) | 2021.10.28 |
[DOCKER] 컨테이너 관리 (0) | 2021.10.28 |
[DOCKER] 계정 관리자 권한 부여 (0) | 2021.10.26 |
[DOCKER] 삭제방법 (0) | 2021.10.26 |