2015-02-07 3 views
2

이전에 사용하던 Wordpress 컨테이너가 있습니다. 링크 된 컨테이너의 변경으로 인해 Wordpress 컨테이너를 지금 시작할 수 없습니다 (EntryPoint 코드에 오류가 있음)정지 된 Docker 컨테이너에서 명령을 실행하는 방법은 무엇입니까?

Wordpress 컨테이너에 호스트 파일 시스템에 저장되어 있지 않은 일부 구성이 포함되어 있으므로 지금은 docker run을 다시 실행합니다. 대신 정지 된 컨테이너에 bash을 쓰고 변경된 파일을 모두 확인한 다음 해당 파일을 먼저 백업하십시오.

중지 된 컨테이너에 bash을 실행하는 방법이 있습니까? 그렇게하는 방법?

답변

4

더 자연스러운 방법은 docker diff을 사용하여 컨테이너 파일 시스템의 변경 사항을 검사하는 것입니다. - 변경된 파일의 이름 만 표시합니다.

성숙한 컨테이너를 사용하여 운이 좋고 볼륨이 변경된 경우 --volumes-from <stopped container>으로 새 컨테이너를 시작할 수 있습니다.

다른 방법으로는 중지 된 컨테이너 start을 입력 한 다음 exec을 입력하면됩니다.

세 번째 옵션은 중지 된 컨테이너를 이미지로 커밋하고 새 컨테이너를 시작하는 것입니다.

+0

나는'docker diff'을했지만 약간의 변화 만 보았습니다. 오른쪽에서는'/ wp-content/uploads' 폴더에 꽤 많은 이미지가 있어야합니다. 'docker diff'는 초기 이미지와 비교하여 컨테이너에 변경된 모든 파일을 항상 표시합니까? –

+0

나는'시작'하고 나서'exec' 할 수 없었다. 'start'는'exec '할 기회를 갖기 전에 (EntryPoint의 에러로 인해) 컨테이너를 조기에 종료시킵니다. –

+1

'docker diff' 파일이 보이지 않으면 볼륨에 남아있을 가능성이 있습니다. 'docker run -it --volumes-from <중지 된 컨테이너> 우분투 '를 실행하면 쉽게 복구 할 수 있습니다. –

0

고정 표시기 실행 -v/mydata을 --name mydata을 다음

... :-(를 실행하지 않는 경우

고정 표시기 간부 mydata을 터치/mydata을/foo는 #이 작동하지 않는 거짓 우분투/빈/

좋은 해결책은 일회용 용기를 사용하면 데이터 컨테이너에 첨부 할 때마다 실행하는 것입니다. 임시 컨테이너가 OS의 도구를 가지고하는 것처럼이 경우 데이터 컨테이너 자체가 완전히 비어있을 수 있습니다.

$ docker run --rm --volumes-from mydata -it ubuntu bash 
[email protected]:/# ls /mydata 
[email protected]:/# touch /mydata/foo 
[email protected]:/# exit 
exit 
관련 문제