2016-10-28 3 views
-1

커밋 변경 사항이 컨테이너에서 작동하는지 테스트하고 있습니다. 그래서 그냥 텍스트가 들어있는 테스트 파일을 만든 다음 그것을 승인하고 내 저장소 (최신 태그)에 푸시합니다. 도커를 통해 다시 다운로드 할 때마다 myrepository 이름을 가져옵니다. 테스트로 만든 텍스트 파일이 더 이상 포함되어 있지 않습니다.도커 컨테이너에 파일을 저장하지 않는 이유는 무엇입니까?

커밋, 푸시, 풀다운 후에 실제로 컨테이너 내에서 변경 한 내용이 그대로 유지되도록 어떻게 조작 할 수 있습니까?

docker pull twsee/atsci405 
docker run -it twsee/atsci405 /bin/bash 

출구// 빈/bash는의 주요 디렉토리에

docker commit 6e667bab0bb967656e81d343d33ffe7dfae35afb868b137ea425e5dbe3533b0c twsee/atsci405:latest 
docker push twsee/atsci405:latest 

이 미스 매치 컨테이너 ID가

+0

도커 컨테이너 내부에서 변경 사항을 '커밋'해야합니다. https://docs.docker.com/engine/reference/commandline/commit/ – Hackerman

+0

여러분의 가정은 정확하므로 일부 단계를 빠뜨린 것 같습니다. 사용한 명령 시퀀스를 게시 할 수 있습니까? –

+0

@Hackerman 오 실행 중 컨테이너를 종료하기 전에 수행해야합니까? – twseewx

답변

1

내가 잘못 아무것도 표시되지 않습니다 무시 컨테이너를 파일을 생성 당신의 흐름. 위의 설명에서 '실행중인'컨테이너를 커밋해야 함을 알았습니다. 그건 맞지 않아. 다음을 참조하십시오.

$ docker run -it alpine:3.3 sh 
# touch testfile 
# ls 
bin  home ... testfile ... 
# exit 
$ docker commit $(docker ps -aql) johnharris85/test-commit:latest 
$ docker push johnharris85/test-commit:latest 
$ docker rmi johnharris85/test-commit:latest 
$ docker run -it johnharris85/test-commit:latest sh 
# ls 
bin  home ... testfile ... 

다른 결과가 표시됩니까? 부모 이미지 Dockerfile을 게시 할 수 있습니까? 볼륨에 문제가있을 수 있습니까?

0

파일을/bin/bash 위치에 두었 기 때문에 파일을 밀어 넣을 때 이미지에서 제거되었습니다. 그러나 나는/bin/bash를 따르는 각 디렉토리 안에 몇 개를 놓았고 각 테스트 파일은 내가 한 다음 이미지에서 이미지 안에 남아 있었다.

관련 문제