Docker는 데이터 저장 및 공유를 위해 데이터 볼륨 마운트를 사용합니다.

1. 마운트 및 데이터 볼륨

Docker에서 마운트 및 데이터 볼륨은 컨테이너와 호스트 간에 데이터를 공유하는 데 사용되는 메커니즘입니다.

  • 마운트 : 호스트 파일 시스템의 디렉터리 또는 파일을 컨테이너의 디렉터리 또는 파일과 연결하는 프로세스입니다.
  • 데이터 볼륨 : 컨테이너 파일 시스템을 우회하고 호스트 파일 시스템과 직접 상호 작용할 수 있는 특수 디렉터리입니다.

1.1 데이터 볼륨을 사용하는 이유는 무엇입니까?

  • 컨테이너에 데이터가 있는 경우 컨테이너를 삭제하면 데이터가 손실되므로 데이터를 유지해야 합니다.
    예: mysql 컨테이너, 컨테이너가 삭제되면 내부 데이터도 사라집니다.
  • 컨테이너 간에 데이터 공유 기술이 있어 컨테이너와 호스트가 데이터를 공유할 수 있습니다. Docker 컨테이너에서 생성된 데이터는 호스트 시스템에도 동기화됩니다.

1.2 데이터 볼륨을 사용하면 어떤 이점이 있습니까?

  • 데이터베이스 구성 파일을 수정하면 수정하기 위해 컨테이너에 들어가야 하는데, 꽤 번거롭다. 마운트한 후에는 로컬에서 수정하기만 하면 컨테이너가 자동으로 동기화됩니다.
    ​- 마운트 후에는 디스크 저장소의 복사본 2개(컨테이너에 하나, 호스트에 하나)를 차지하게 됩니다.
  • 컨테이너를 탑재하거나 삭제한 후에도 호스트의 해당 탑재 디렉터리는 삭제되지 않습니다.

2. 데이터 볼륨을 마운트하는 방법

데이터 볼륨을 마운트하는 명령을 직접 사용할 수 있으며 docker run -it -v, 데이터 볼륨을 마운트하는 명령은 다음과 같습니다.

docker run -it -v 宿主机路径:容器内路径

그 중 호스트 경로는 절대 경로이고,

컨테이너가 실행되고 탑재된 후 docker informe 컨테이너 ID를 사용하여 디렉터리가 성공적으로 탑재되었는지 확인합니다.

docker inspect 容器id
# 搜索Mounts,这里面就是目录的挂载信息
#   Source:主机内路径
#   Destination:docker容器内的路径
# 如果Mounts这里不展示挂载信息,就说明是挂载失败了

3. 구체적인 예

sudo docker run -it -v /home/Project/data:/data test:1.0

장착 정보는 다음과 같습니다.

  • 호스트 경로:/home/Project/data
  • 컨테이너 경로:/data
  • 이미지 이름: image-test:1.0

다음으로 컨테이너가 정상적으로 실행되고 있는지 확인할 수 있습니다.

sudo docker ps -a

여기에 이미지 설명을 삽입하세요.

컨테이너 장착 정보 보기:

sudo docker inspect 921ea03a66ea

마운트를 검색하세요. 디렉토리의 마운트 정보는 다음과 같습니다.

  • 소스: 호스트 내 경로
  • 대상: Docker 컨테이너 내의 경로
    여기에 이미지 설명을 삽입하세요.

여기 Mounts에 마운트 정보가 표시되지 않으면 마운트에 실패한 것입니다.

참고 : 데이터 볼륨이 마운트되고 컨테이너가 중지되면 해당 데이터가 호스트의 마운트 디렉터리에 기록되며, 이때 데이터도 컨테이너의 해당 디렉터리와 동기화됩니다.

Guess you like

Origin blog.csdn.net/u012856866/article/details/132672636