Docker는 애플리케이션의 배포와 관리를 간소화하기 위해 컨테이너화된 환경을 제공합니다. 컨테이너는 파일 시스템 레이어로 구성되며, 읽기 전용 이미지 레이어와 쓰기 가능한 컨테이너 레이어로 나뉩니다. 아래의 그림은 Docker의 레이어 구조를 시각적으로 나타냅니다.
컨테이너 레이어는 컨테이너가 실행 중일 때만 존재하며, 컨테이너가 종료되면 삭제됩니다. 따라서 컨테이너의 수명과 상관없이 데이터를 저장하려면 Docker Volume을 사용해야 합니다. 이 글에서는 Docker에서 데이터를 저장하고 관리하는 방법에 대해 설명합니다.
볼륨(volume)은 Docker가 직접 관리하는 컨테이너의 디렉터리입니다. 볼륨은 데이터를 저장하는 데 사용되며, 컨테이너가 삭제되어도 볼륨에 저장된 데이터는 유지됩니다. 볼륨은 호스트 파일 시스템과 독립적으로 존재하므로, 여러 컨테이너 간에 데이터를 공유하거나 데이터를 영구적으로 저장하는 데 이상적입니다.
볼륨을 생성하고 확인하는 명령어는 다음과 같습니다:
Docker 스토리지 드라이버는 컨테이너의 데이터를 관리하는 방법을 결정합니다. 각 스토리지 드라이버는 이미지 레이어를 구현하고, 컨테이너의 실행 중인 상태를 관리하며, 데이터를 저장하고, 네트워크와 상호 작용하는 방법을 제어합니다. 사용 중인 스토리지 드라이버를 확인하는 명령어는 다음과 같습니다:
마운트(mount)는 호스트 시스템의 특정 디렉터리를 컨테이너의 디렉터리에 연결하는 방법입니다. 이를 통해 컨테이너가 호스트 시스템의 파일이나 디렉터리에 액세스하거나 수정할 수 있습니다. 마운트는 크게 두 가지 유형으로 나뉩니다: **바인드 마운트(bind mount)**와 **볼륨(volume)**입니다.
바인드 마운트는 호스트 파일 시스템의 특정 경로를 컨테이너 내부의 경로에 연결하는 방식입니다. 바인드 마운트를 사용하면 호스트와 컨테이너 간의 파일이 실시간으로 동기화됩니다. 이는 개발 환경에서 소스 코드나 설정 파일을 공유하는 데 유용합니다.
볼륨 마운트는 Docker가 관리하는 스토리지 위치를 사용하여 컨테이너 간에 데이터를 공유하거나 보존하는 방식입니다. Docker Volume은 Docker가 자체적으로 관리하는 독립된 스토리지로, 호스트 파일 시스템과는 별도로 작동합니다.
특성 | Bind Mount | Volume Mount |
정의 | 호스트 디렉토리를 마운트 | Docker가 관리하는 스토리지 |
설정 편의성 | 간단 | 약간 복잡 |
안전성 | 낮음 | 높음 |
호환성 | 낮음 | 높음 |
데이터 공유 | 어려움 | 쉬움 |
백업/복원 | 어려움 | 쉬움 |
[Docker] Dockerfile 튜토리얼: Ubuntu에서 Nginx 웹 서버 설정하기 (0) | 2024.05.28 |
---|---|
[Docker] 네트워킹: bridge vs host (0) | 2024.05.24 |
[Docker] 아키텍처 architecture (0) | 2024.05.23 |
[Docker] private repository 에 image push 해보기 (0) | 2024.05.23 |
[Docker] Docker란 무엇인가? (0) | 2024.05.17 |