2015-01-07 3 views
6

nginx 컨테이너에서 사용하려는 정적 HTML 파일을 포함하는 데이터 전용 컨테이너를 만들었습니다. 목표는 내 webapp에서 nginx가 사용할 수있는 볼륨을 제공한다는 것입니다. 내가 명령 줄에서 생성 된 컨테이너를 실행하면처음부터 데이터 컨테이너를 실행중인 도커

FROM scratch 
MAINTAINER me <[email protected]> 
ADD dist/ /webappp/ 

run -d -v /webappp --name webapp myOrg/webapp echo yo

내가 올바른 과정의 경우 이미지가 어떤 명령이 없기 때문에 오류 Error response from daemon: Cannot start container db7fd5cd40d76311f8776b1710b4fe6d66284fe75253a806e281cd8ae5169637: exec: "echo": executable file not found in $PATH를 얻을 : 이러한 이유로

나는 간단한 Dockerfile을 생성 모든 것이 실행될 수 있습니다. 명령없이 컨테이너를 실행하는 것은 불가능합니다.

데이터 컨테이너가 여전히 생성되어 있으며 nginx에서 액세스 할 수 있으므로 명령 행에서이 오류가 큰 문제는 아니지만 Vagrant를 사용하여 자동화하려는 경우에는 아무 문제가되지 않습니다. 이 오류로 인해 자동 프로세스가 항상 실패합니다.

나의 유일한 해결책은 지금까지 IMHO가 단지 에코 또는 사실을 호출하기 위해 데이터 전용 컨테이너에 대해 이해할 수없는 배포판에서 내 작은 핸디 이미지를 확장하는 것입니다!

docker에 NOP exec 명령이 있거나 docker가 항상 무언가를 실행해야하는 경우 아무 것도 수행하지 않거나 오류를 생성하지 않는 스크래치 컨테이너를 실행할 수 있습니까?

+0

이 도움말이 있지만 http://stackoverflow.com/questions/25845785/most-appropriate-container-for-a-data-only-container를 사용해 보았는지 확실하지 않습니다. 그건 그렇고, 나는 내 데이터 컨테이너에 대한 busybox를 사용하여 끝났다. –

답변

7

도커 설명서에서 언급 한 바와 같이 : 컨테이너는 실행 할 필요가 없습니다. 또한 컨테이너가 전혀 실행될 수 있어야한다고 말하지 않습니다.

그래서 데이터 전용 컨테이너를 실행하여 stupid로 에코 대신. docker run -v /webappp --name webapp myOrg/webapp echo yo

이미 으로 작성하면 컨테이너를 만들고 실행/시작하지 마십시오. 자기에

docker create -v /webappp --name webapp myOrg/webapp

참고 : 방랑을 제공 할 때 고정 표시기 생성을 지원하지 않습니다!

+0

좋은 답변입니다! 도커 1.5.0에서'docker create'가 작동하도록 명령을 추가해야했습니다. 물론 컨테이너가 실행되지 않으므로 명령이 존재하지 않아도됩니다. – rollingBalls

3

왜 스크래치를 사용하고 있습니까?

그냥 기지로 nginx 이미지를 사용하십시오. 이미 이미지가 캐싱되어 더 이상 공간을 차지하지 않으므로 echo를 호출 할 수 있습니다. 데이터 컨테이너에 대한

일부 참조 :

+0

사이즈가 맞습니다! 그러나 나는 오버 헤드 (비 유적으로 말하기)를 원하지 않습니다. 어느 날 누군가가 데이터 전용 컨테이너를 시작할 수도 있습니다. 왜냐하면 그는 "Hey"가 nginx라고 생각하는 유혹에 빠질 수 있기 때문에 이름을 읽습니다. 그것은 작동하지만 확실하지 nginx 설정으로 당신이 싶었어.아무도 가져 가지 않았기 때문에 이미지에서만 데이터를 업데이트하고 작업중인 nginx config와 동기화하여 관리합니다. 그래서 나에게 이것은 busybox 또는 다른 미니 배포판을 사용하는 것과 같은 해결 방법에 대한 해결 방법 일뿐입니다. – Vadimo

+0

음, 'docker start'로 echo 명령을 무시할 수 있다고 생각하지 않습니다. 부수적으로, 이것은 docker ps에 표시되고 inspect 될 때 echo 명령 안에 컨테이너에 대한 설명을 넣어야하는 좋은 이유입니다. –

관련 문제