2017-12-22 4 views
0

Dockefile 내부의 볼륨을 초기화하는 것처럼 바인드 마운트를 도커 파일에 추가하려고합니다. 다른 방법이 있습니까?볼륨을 Dockerfile에 Dockerfile에 추가하십시오.

+0

정확히 원하는 것은 무엇입니까? 예를 들어 귀하의 요구 사항을 설명하십시오. –

답변

1

Dockerfile은 Dockerfile에서 바인드 마운트를 지정할 수 없으므로 이미지 작성 방법이 아닌 이미지 작성 방법을 정의합니다. 대신 docker-compose을 사용해보세요. 이 같을 것이다위한 디렉토리를 마운트 간단한 docker-compose.yml :

version: '3.1' 

services: 
    mycontainer: 
    image: myimage 
    build: . 
    volumes: 
     - './path/on/docker/host:/path/inside/container' 

당신은 몇 가지 다른 방법으로 이미지를 구축하고있는 경우 build: .은 선택 사항이지만, 가끔은 하나에 모든 것을 할 편리합니다. 다른 답변은 말뿐만 아니라 docker-compose up -d

0

간단한 대답은 없습니다.

도커 이미지의 기본 디자인 원칙은 유용합니다. 바인드 마운트는 마운트 된 폴더가 호스트 시스템에 정의되어 있기 때문에 특정 호스트입니다. 따라서 이것은 Docker 이미지의 이동성 요구 사항과 모순됩니다.

0

실행이 :

바인드 마운트 그들에게 큰 보안 위험이 될 것 이미지에 삽입 할 수 있도록 호스트 파일 시스템에 대한 액세스를 제공하기 때문에

. 예를 들어 웹 서버라고 주장하는 이미지를 고려해보십시오. 실제로 바인드는 /etc/passwd/etc/shadow이며 원격 서버로 전송합니다.

또는 바인드 된 컴퓨터는 /lib/ld-linux.so을 마운트 한 다음 덮어 쓰므로 전체 시스템이 손상됩니다.

이러한 이유 때문에 Dockerfile에 바인드 마운트를 포함시킬 수 없습니다. 마찬가지로 Dockerfile에서 호스트 포트 매핑, 호스트 장치 액세스 또는 기타 유사한 속성을 지정할 수 없습니다.

+0

좋은 설명이었습니다. – Mufeed

관련 문제