나는 재현 할 수있는 데이터 과학 작업에 관심이 많습니다. 이를 위해 Docker를 코드, 데이터 및 환경 설정을 번들로 묶을 수있는 플랫폼으로 탐구 중입니다. 첫 번째 간단한 시도는 필요한 데이터가 포함 된 Docker 이미지입니다 (link).도커를 사용하는 데이터 볼륨 이미지
그러나 첫 번째 단계는이 예에서 데이터가 이미지의 일부이므로 이미지가 컨테이너에로드 될 때 데이터가 이미있는 것입니다. 다음 목표는 분석 코드와 데이터를 분리하는 것입니다. 내가 이해하는 한, 이는 두 개의 컨테이너 (코드 : code
)와 데이터 (data
)가있는 컨테이너를 의미합니다. code
를 들어
Dockerfile
간단한 :
FROM continuumio/miniconda3
RUN conda install ipython
과 data
에 대한
data.csv
내가 이미지에 복사하고있어 데이터 파일입니다
FROM atlassian/ubuntu-minimal
COPY data.csv /tmp
.
나는 this 솔루션에 설명 된대로 실행할 수 있습니다이 두 이미지를 구축 한 후 : 네트워크를 시작한 후
docker run -i -t --name code --net=data-testing --net-alias=code drorata/minimal-python /bin/bash
docker run -i -t --name data --net=data-testing --net-alias=data drorata/data-image /bin/bash
: docker network create data-testing
내가 다른에서 하나 개의 컨테이너를 Ping 할 수 다음 단계 후, 그리고 아마도 에서 data.csv
에 액세스하십시오. 그러나 나는 이것이 하위 최적의 해결책이며 좋은 연습으로 간주 될 수 없다는 느낌을 가지고 있습니다.
데이터에 액세스 할 수있는 컨테이너를 보유하는 것이 좋습니다. data volumes에 대해 조금 읽었지만 이미지를 활용하는 방법과 이미지로 변환하는 방법을 이해하지 못합니다.
그리고'Dockerfile'을 사용하여'code' 이미지에 CSV를 복사하는 것은 어떻습니까? 나는 연구 공유를 단순화하기 위해 노력하고 있으며, 결국 당신은 코드와 데이터를 제공해야합니다. 하나의 흥미로운 접근법은 서로 다른 두 개의 이미지와이를 독립적으로 제공하는 것입니다. 처음 배포하려면 – Dror
을 입력하고 파일을 이미지에 복사하십시오. 데이터 세트의 업데이트와 배포를 위해 내 대답이 오는 곳입니다. 데이터를 위해 두 번째 이미지를 배포 할 필요가 없습니다. 그들에게 데이터를 제공하자. 제안 된대로 –
컨테이너가 실행되면 호출되는 시작 훅을 사용할 수 있습니까? 이 후크는 저장소에서 데이터를 가져와야합니다. – Dror