도커 이미지의 캐싱/레이어링을 활용하여 대역폭, 디스크 공간 및 소요 시간을 절약하고 싶습니다.커밋을 사용하여 작은 변화가있는 도커 이미지 업데이트
하자 말 :
- 내가 웹 응용 프로그램 고정 표시기 이미지를 설치하고 몇 가지 고정 표시기 호스트에 배포했습니다.
- docker 이미지에 내 웹 앱의 소스 코드가 포함되어 있습니다.
- 나는 코드 작업을했는데 이제는 새로운 버전의 코드를 가지고있다.
어떻게 만 버그 수정을 포함하는 새로운 고정 표시기가 마지막 이미지 위의 커밋 의 생성을 자동화해야합니까?
내 목표는 이미 이전 이미지를 다운로드 한 docker 호스트에 대한 새 이미지를 얻으려면 작은 bugfix diff 만 다운로드해야한다는 것입니다.
- 아마 이미지에 업데이 트를 저장 어떻게 든
docker commit
를 사용하는 겁니다 :이
그것에 대해 내 현재 감상의 물리게입니다. - 그러나 어떻게 이미지 콘텐츠에 액세스 할 수 있습니까?
- 그럼에도 불구하고 웹 앱 서비스와 관련이없는 다양한 도구 (자식 및 셸 스크립트)를 사용하여 원래의 이미지를 혼란시키지 않으면 서 변경 사항을 어떻게 가져올 수 있습니까?
- 나는 코드를 업데이트 할 수있는 다른 도커와 코드를 공유하기 위해 볼륨을 조사했습니다. 그러나 볼륨은 커밋되지 않습니다.
이것을 달성하는 방법에 대한 통찰력을 가져 주셔서 감사합니다!
편집 : Dockerfile을 여러 개 사용하면 유사한 문제가 발생하여이 작업을 수행하는 것처럼 보일 수 있습니다 (thx http://jpetazzo.github.io/2013/12/01/docker-python-pip-requirements/). 비행 중에 내 독커 파일을 생성해야 할 것 같습니다.
이미지에 코드를 어떻게 추가합니까? – Behe
@Behe 내 문제의 일부라고 진술 했으므로 귀하의 질문을 이해할 수 없습니다. 귀하의 질문에 대한 첫 번째 장소에서 (응용 프로그램을 업데이트하기 전에) 코드를 추가하는 경우, 잘 나는 자동화 된 빌드에서 ADD를 사용하여 http://dockerfile.github.io/#/python-runtime에서 생각하고있었습니다. – vaab
Dockerfile을 사용하고 끝에 ADD 명령을 넣으면 변경된 내용이 추가 될 때까지 캐시에 도달 한 다음 새 내용에 대한 새 레이어를 만들어야합니다. 그게 도움이 되겠습니까? – Behe