CS/배포

도커 이미지 배포 이후 컨테이너와 이미지 깔끔하게 정리하는 방법

기억용블로그 2022. 7. 5. 12:02
728x90

기존의 빌드 이후 실행되던 쉘스크립트는 빌드와 실행 자체는 잘 되지만 

기존에 존재하던 이미지와 컨테이너를 삭제하지 못 하고 계속해서 증식하던 문제가 발생했다.

 

기존 쉘스크립트는 올릴 필요가 없을 정도로 완벽하게 깔끔한 정답을 찾아서 공유한다!

 

쉘스크립트

cd ~/deploy

docker-compose pull
docker-compose up -d --remove-orphans
yes | docker image prune

 

1. docker-compose.yml이 존재하는 폴더의 위치로 이동하고

 

2. 이미지를 새로 받아온다

3. 컨테이너를 재시작한다. 어디에도 연결되지 않은 컨테이너는 여기서 삭제된다.

 

4. yes | docker image prune은 사용되고 있지 않은 이미지를 삭제하는 과정인데

꼭 필요한 과정이 아니며 이미지를 삭제하므로 조심해서 사용해야 한다!

 

yes | 는 prune의 과정에서 프롬프트로 정말 삭제할 것인지 물어보는데 이에 대한 대답을 미리 지정해둔 것이다.

 

결과는 매우 잘 작동한다 :D

 

레퍼런스

https://stackoverflow.com/questions/49316462/how-to-update-existing-images-with-docker-compose

 

How to update existing images with docker-compose?

I have multiple microservices and I am using docker-compose for development deployments. When there are some changes in the microservices code base, I am triggering ci job to re-deploy them. I have...

stackoverflow.com