2017-05-23 6 views
0

Docker가 컨테이너에 호스트에 설치된 앱을 실행할 수 있기 때문에 하드 디스크 공간을 낭비하는 각 이미지에 앱을 설치할 필요가 없는지 알고 싶습니다.Linux + Docker - Docker 컨테이너에서 호스트의 앱을 실행하는 방법은 무엇입니까?

내가 의존성과 패키지를 로컬로 필요로하기 때문에 Linux가 다르다는 것을 알고 있지만, Windows VM에서 사용하는 것이 가능한지 궁금합니다. Windows Hyper-V에서 휴대용 응용 프로그램이 포함 된 네트워크 폴더를 컨테이너와 공유하고 Windows VM 내부에서 응용 프로그램을 실행하여이 작업을 수행했습니다. 감사합니다.

답변

2

실행 파일이 들어있는 호스트의 디렉토리를 컨테이너에 연결할 수 있습니다. 그런 다음 컨테이너에서 액세스 할 수 있습니다. 그렇게하려면 VOLUMES -- Mount a host directory as a data volume을 사용하고 컨테이너 (여기 :/foo)에 호스트 디렉토리 (여기 :/tmp/foo)를 마운트하고 컨테이너 위치 /foo/foo.sh에 foo.sh라는 스크립트를 실행하십시오 :

mkdir /tmp/foo 
echo -e "#\!/bin/sh\n\necho foo" > /tmp/foo/foo.sh 

docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh 
=> foo 

같은 식으로, 당신은 당신의 컨테이너에 호스트에서 바이너리를 추가 할 수 있습니다 ..하지만이 의도와 용기가 lightweight- ", 고립 된 독립형 작업을해야하기 때문에, 사용하는 것을 생각하지 않는다 VM ". 호스트 시스템에 불필요한 종속성을 추가합니다. 이는 우아한 해결책이 아닙니다.

관련 문제