반응형
Docker 컨테이너와 데이터를 공유하는 방법
이미지에서 텍스트를 추출하는 OCR을 테스트하다가 호스트의 데이터를 도커에서 사용하는 것은 간단한데,
도커 컨테이너의 데이터를 호스트에서 사용하는 것은 생각보다 까다로웠고, 그 방법도 내가 원하는 방법이 아니였다.
그래서 찾아보다가 Volume을 만들어서 데이터를 공유하는 방법이 있었다.
Volume 생성
아래의 명령어를 입력하여 Volume을 생성한다.
$ docker volume create --name hjVolume
입력한 Volume의 이름이 나오면 성공이다.
hjVolume
Volume 확인하기
아래의 명령어를 입력하면 Volume의 정보를 확인할 수 있다.
$ docker volume inspect hjVolume
Docker 컨테이너와 데이터 공유하기
내가 Volume을 사용하고자 하는 목적은 Docker로 설치한 Tesseract를 사용해 이미지의 텍스트를 추출하여 해당 텍스트 파일을 호스트에서 사용할 수 있도록 하는 것이다.
아래 스크립트는 텍스트를 추출하고자 하는 이미지 파일을 Volume으로 복사하고, Docker컨테이너에서 그 이미지의 텍스트를 추출하여 다시 Volume에 txt파일로 저장하는 것이다.
#!/bin/bash
VOLUMEPATH=/var/lib/docker/volumes/hjVolume
FILEPATH=/home/hyeonjung/tesseract/
docker run 부분을 보면 되는데 -i
옵션은 컨테이너와 상호작용을 한다는 옵션이고-v hjVolume:/hjvolume
옵션은 호스트 OS 디렉터리와 Docker 컨테이너의 디렉터리를 공유시키는 것으로 hjVolume 디렉터리를 Docker 컨테이너에서 hjvolume이라는 이름으로 사용한다는 의미이다.
참고
How To Share Data between Docker Containers
반응형