2017-03-27 5 views
0

원래 컨테이너 (게시 된 포트, 네트워크, 메모리 용량 변경과 같은 것)에 사용 된 인수를 약간 수정하여 컨테이너를 다시 작성해야하는 경우가 종종 있습니다.도커 컨테이너의 실행 인수를 복구하십시오.

이제 이미지를 만들어서 이전 컨테이너 대신 실행합니다.

잘 작동하지만 원래 파라미터가 항상 docker run에 저장되어있는 것은 아니며 때로는 정의 할 항목이 많을 때도 있습니다. 복구 할 때 많은 고통을 겪습니다.

기존 컨테이너의 docker run 인수를 복구 할 수있는 방법이 있습니까?

답변

0

이 작업을 수행하는 가장 좋은 방법은 명령을 수동으로 입력하지 않는 것입니다. 그것들을 쉘 스크립트 ... linux/mac에있는 .sh 파일이나 windows상의 .cmd 파일에 넣으십시오. 그런 다음 쉘 스크립트를 실행하여 컨테이너를 만들면 명령과 옵션을 다시 입력하는 것에 대해 걱정할 필요가 없으며 잘못 입력하지 않아도됩니다.

개인적으로 "npm scripts "내 package.json 파일에. 그러나 같은 일은 인수가있는 명령 행 프로그램을 실행할 수있는 도구로 수행 할 수 있습니다

나는 다른 작업을 수행하여 make sure i never fail to build my images or run my containers으로 처리합니다. 도커로 삶을 훨씬 쉬워줍니다. :)

+0

제안 해 주셔서 감사합니다. 그러나 이것은 제 경우에 실제로 어울리지 않습니다. 쉘 스크립트는 프로젝트를 진행할 때 유용하며 앞으로 컨테이너를 만들어야한다는 것을 알고 있습니다. 나는 종종 사전에 그것을 모른다. 나는 docker (다른 것들 중에서도)를 사용하여 새로운 것을 만들어 냈다. 그래서 나는 컨테이너를 자주 던져 버린다. 그리고 나중에 재사용을 위해 작은 (알 수없는) 부분 만 필요하다. 쉘 스크립트를 관리하는 것은 이러한 맥락에서 지나치게 부담이된다. –

0

docker inspect을 사용하면 컨테이너의 구성을 가져올 수 있습니다. 그것으로부터의 docker run 명령의 재구성은 다소 지루할 수 있습니다.

다른 옵션은 history | grep "docker run" 또는 ctrl+r (bash을 사용하는 경우) 중 하나를 사용하여 쉘 기록을 검색하는 것입니다. 그렇게하면 명령을 저장하는 도중에서 벗어날 필요가 없지만 명령을 빨리 복구 할 수 있습니다.

0

몇 가지 답변입니다. docker-compose을 사용하여 컨테이너를 실행하면 작성 파일을 실행하고 모든 구성을 유지할 수 있습니다. 분명히 작성은 다중 컨테이너 응용 프로그램을 위해 설계되었지만 단일 컨테이너, 복합 run 인수 사용 사례의 경우 대폭 과소 평가되었습니다.

두 번째는 run 명령을 이미지의 LABEL에 넣는 것입니다. Label Schemadocker.cmd 등을 살펴보십시오. 그러면 이미지 (또는 Dockerfile)에서 쉽게 검색 할 수 있습니다.

관련 문제