pydocker 라이브러리를 사용하여 원격으로 도커 컨테이너를 실행 중입니다. 실행중인 컨테이너에 로컬 디렉토리를 마운트해야합니다. 설명서에는 API를 사용하여 볼륨을 만드는 방법이 나와 있습니다. 그러나 컨테이너를 만드는 동안 볼륨을 사용하는 방법을 파악할 수 없습니다. 내가 https://docker-py.readthedocs.io/en/stable/api.html#module-docker.api.container원격 볼륨을 사용하는 Py-Docker create_container
답변
에서 문서를 다음입니다
간단한 대답은 당신이 할 수 없다는 것입니다. Docker는 시스템의 디렉토리를 원격 서버에 마운트하지 않습니다. 컴퓨터에서 데이터를 사용할 수 있어야합니다.
다른 방법은이 이미지를 이미지 자체에 넣는 것입니다. 그런 다음 로컬에서 빌드를 시작하고 로컬 디렉토리에 빌드 컨텍스트를 설정할 수 있습니다. 이렇게하면 전체 디렉토리 컨텍스트가 원격도 커 서버로 전송되고 COPY/ADD를 사용하여 Dockerfile 내의 이미지로 복사합니다.
이렇게하면 공유 폴더가 호스트의 VM에 삽입되므로 VM에서 작동합니다 호스트 폴더
sshfs를 사용하여 원격 디렉토리를 마운트하는 데 도움이되는 볼륨 드라이버를 사용할 수있는 옵션이 있습니다. 나는 그것을 이해하려고 노력하고있다. 그러나 그것은 나에게 약간의 시간이 걸리게한다. (다른 드라이버 : https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins) –
이러한 플러그인은 서버에 먼저 설치해야하며 클라이언트에서 직접 수행 할 수 없습니다 –
이 나를 위해 일 팔로우 VM에 고정 표시기 원격 볼륨 마운트 작업 같이 보인다 :
volume = cli.create_volume(name='<volume-name>',
driver='vieux/sshfs',
driver_opts={'sshcmd': '<[email protected]>:<path>', 'password':'<password>'},
labels={})
container = cli.create_container(
container_url,
'<run-cmd>',
detach=True,
volumes=['<mnt_dir>'],
host_config=self.dclient.create_host_config(
binds={ \
'<volume-name>': {\
'bind': '<mnt_dir>', \
'mode': 'ro', \
'src': '<volume>', \
'volume-driver': 'vieux/sshfs', \
'target' :'/app', \
'volume-opt': { \
'sshcmd': '[email protected]', \
'password': <passwd> \
} \
} \
},
port_bindings=port_map))
https://docs.docker.com/engine/admin/volumes/volumes/#initial -set-up이 페이지는 docker cli를 사용하여 가능하다는 것을 설명합니다. –