2016-12-12 7 views
0

Docker 볼륨에 대해 마음을 감싸려고 노력 중입니다. 이해해야 할 사항이 몇 가지 있습니다.Docker Data/Named Volumes

env 변수에 따라 초기화가 필요한 Python 응용 프로그램이 있다고 가정 해 보겠습니다. 내가 달성하고자하는 것은 "코드 전용 이미지"에서 실행시 마운트 될 컨테이너를 시작할 수 있습니다. 기본 컨테이너의 진입 점 스크립트는 코드 전용 컨테이너에서 일부 파일을 읽고 생성합니다.

app: 
    image: python/app 
    hostname: app 
    ports: 
     - "2443:443" 
    environment: 
     - ENV=stuff 
    volumes_from: 
     - code_volume 

내가 응용 프로그램에서 오류가 발생합니다 :

나는

FROM ubuntu  
COPY ./app /usr/local/code/app 

그런 다음

그리고 고정 표시기-작성과 docker create --name code_volume 코드의 복사본을 가지고 이미지를 만들려고 컨테이너는/usr/local/code/app/src에있는 파일을 찾을 수 없다는 것을 말하는 컨테이너이지만, bash로 code_volume을 실행하고 폴더에 넣으면 파일이 거기에 있습니다.

액세스 권한을 변경하려고 시도했는데/bin/true를 추가했지만 (일부 예제에서 볼 수 있음) 작동하고 싶은 것을 얻을 수 없습니다. docker volume create 기능을 확인했지만 이후에 데이터를 저장/공유하는 것으로 보입니다.

무엇이 누락 되었습니까? 볼륨이 마운트되기 전에 엔트리 포인트 스크립트가 실행됩니까? 이와 같은 경우에 폴더를 마운트하거나 모든 컨테이너에 대해 하나의 복사본을 유지하는 것과 관련없는 모범 사례가 있습니까? 내 컨테이너를 다시 생각해야할까요?

답변

0

작성시 code_volume 컨테이너에 볼륨을 선언하지 마십시오.

docker create -v /usr/local/code/app --name code_volume