2017-12-12 2 views
0

저는 Docker 컨테이너를 사용하는 데이터 과학자가 증가함에 따라 재현 가능한 분석을 허용하고 있습니다.외부 서버의 데이터를 Docker 컨테이너에 액세스/풀하는 방법은 무엇입니까?

질문 : 데이터를 Docker 컨테이너로 어떻게 다운로드합니까? 데이터 다운로드가 URL을 통해 경우

은 자연스럽게 당신은 Dockerfile

wget www.server_to_data.org/path/path/myfile.gz 

에 다음과 같은 라인을 추가 할 수 있습니다하지만 서버에 앉아 데이터가 그것에 의하여 키 -로 서버에 사용자 ssh 쌍은 ~/.ssh/id_rsa.pub입니다. 어떻게 이것이 보안과 관련하여 효과가 있을지 모르겠습니다.

이 경우 정상적으로 데이터를 다운로드하거나 액세스하는 방법은 무엇입니까?

하나는 서버를 마운트 할 수 있지만 컨테이너/VM 내에서 서버에 액세스하는 방법을 잘 모르겠습니다.

+0

데이터에 액세스하기위한 자격 증명 (특히 대화 형 로그인 자격 증명)이 필요한 경우 재현 가능한 분석을 허용한다는 것이 명확하지 않습니다. 제 말은 기관 외부의 누군가가 데이터에 액세스하는 데 필요한 자격 증명을 가지지 않을 것입니다. 귀하의 기관이 연구 데이터 세트를 외부 사용자에게 공개하는 메커니즘이 없다면, 먼저이를 해결해야 할 것입니다. – larsks

+1

바인드 마운트 ('docker run -v $ HOME/.ssh/id_rsa : /root/.ssh/id_rsa ...')를 사용하여 컨테이너에 개인 키를 노출하거나 키 데이터가 환경 변수로 전달 될 수 있습니다. – larsks

답변

1

서버의 데이터가있는 현재 상황에서 액세스 권한이 있어야하는 사람들에게 키 쌍을 배포하고 있습니다. 기존 인프라를 변경하지 않고 그대로 사용하려는 경우 이미지에서 ssh 키의 볼륨을 설정하면 이미지를 실행하는 사람들이 볼륨을 ssh 키로 설정하여 컨테이너를 시작해야합니다.

docker run -d -v PATH_TO_DRECITORY_HOLDING_SSH_KEY:/home/container_user/.ssh [OTHER OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] 

는 그런 다음으로 데이터를 다운로드 할 수 있습니다

FROM ubuntu 
#[RUN your installation process] 
VOLUME /home/container_user/.ssh 

가 해당 볼륨에 SSH 키의 위치를 ​​장착하여 컨테이너를 실행

는 Dockerfile와 이미지의 볼륨을 설정합니다 컨테이너가 시작될 때 실행되는 스크립트의 일부.

기본적인 아이디어는 How can I get my ~/.ssh keys into a docker container running locally?

우리가 조금 질문을 백업하고 경우에 사람들은 이미지가 저장 될 것입니다 경우, 이미지를 사용하려고하는 방법을 정확하게 물어 말했다

(일반 또는에서 올려진다 개인 repo) 및 얼마나 자주 데이터가 변경 될 수 있습니다 더 많은 사용자 친화적 인 방법이 필요를 충족시킬 수 있습니다. 또한 도커 작성을 컨테이너가 실행되는 수단으로 허용하는 경우 다른 옵션을 사용할 수 있습니다.

+0

런타임시 볼륨을 사용하기 위해 Dockerfile에 VOLUME을 설정하지 않아도됩니다. 아마도이 위치에서 암묵적인 익명의 볼륨이 필요하지 않으므로 Dockerfile 변경은 아마도 필요하지 않습니다. – programmerq

+0

감사합니다. @programmerq 감사합니다. –

+0

@JeffRichards "기존 인프라를 변경하지 않고 그대로 사용하려는 경우." 사용자가이 데이터를 실행할 수 있도록 python 알고리즘이 있다고 가정 해 보겠습니다. Dockerfiles를 작성하는 데 익숙해 져서 Linux, Python, 모든 Python 라이브러리 등을 처음부터 설치합니다. Docker 컨테이너가 현재 버전의 소프트웨어를 상속 받아 실행할 수 있습니까? – EB2127

관련 문제