Docker

[Docker] Bind Mount

비번변경 2023. 7. 13. 22:28

개요

2023.07.12 - [Docker] Volume에서 컨테이너에서 사용한 데이터를 유지하기 위한 방법 중 하나인 Volume에 대해서 알아보았다. 이 글에서는 다른 방법 중 하나인 Bind Mount에 대해서 정리한다.

 

 

Bind Mount

Docker 프로세스가 관리하는 호스트 경로를 저장 공간으로 사용하는 Volume과 다르게, Bind mount는 호스트에 저장된 임의의 파일 또는 경로를 컨테이너에 마운트 하여 사용할 수 있다.

파일이나 경로는 호스트 시스템에서 절대 경로로 참조된다. 만약 호스트에 존재하지 않는 파일이나 경로를 마운트 시도하는 경우, Docker에 의해 자동으로 생성된다. 

 

 

Bind Mount 하여 컨테이너 실행

Volume을 사용하는 것과 동일하게 --mount, -v 옵션으로 마운트 할 수 있다.

# --mount
docker run -d \
  -it \
  --name <CONTAINER_NAME> \
  --mount type=bind,source=</PATH/OF/HOST>,target=</MOUNT/PATH> \
  <IMAGE_NAME>:<TAG>
  
# -v
docker run -d \
  -it \
  --name <CONTAINER_NAME> \
  -v </PATH/OF/HOST>:</MOUNT/PATH> \
  nginx:latest


## 예시
docker run -d \
  -it \
  --name devtest \
  -v /home/airflow/airflow:/app \
  nginx:latest

docker inspect 명령어로 컨테이너 정보를 확인하면 Mount 항목에서 bind 타입으로 마운트 된 저장 공간의 정보를 확인할 수 있다.

docker inspect <CONTAINER_NAME>

실제로 마운트한 호스트의 경로와 컨테이너 내 경로에 저장된 데이터가 동일한 모습을 확인할 수 있다.

 

 

참고 문서

https://docs.docker.com/storage/bind-mounts/

https://docs.docker.com/get-started/06_bind_mounts/

[Docker 기본(5/8)] Volume을 활용한 Data 관리