
지금까지는 docker run<이미지 이름>으로 컨테이너 생성,실행을 했는데, 이것을 docker create와 docker start로 쪼개서 볼 수 있다.
docker run는 파일 스냅숏을 하드디스크로 옮기고, 시작 시 실행할 명령어를 컨테이너에서 실행시켜주는 두 역할을 모두 수행한다.
하지만, docker create는 파일 스냅샷만 하드디스크로 옮겨주고, docker start는 시작 시 실행할 명령어만 컨테이너 내에서 실행시켜준다.

docker stop과 docker kill로 중지할 수 있다.
stop과 kill은 둘 다 실행중인 컨테이너를 중지시키는 역할을 수행한다.
하지만,
1. Stop은 Gracefully하게 중지시킨다.
자비롭게 그동안 하던 작업들을 완료하고 컨테이너를 중지시킨다.
예를 들어, 메시지를 보내고 있었다면, 보내던 메시지는 다 보내고 컨테이너를 중지시킨다.
2. Kill은 Stop과 달리 어떠한 것도 기다리지 않고 바로 컨테이너를 중지시킨다.

kill은 SIGTERM이 없다.

먼저 실행시킨 뒤,

docker ps로 아이디나 이름을 알아내어 docker stop <NAMES>명령어를 쳤다.
바로 중지되지 않고, 특정 시간이 지난 후에 종료된다.

kill은 명령어가 입력되는 순간 바로 종료된다.
docker rm <중지할 컨테이너 아이디/이름>

삭제된 것을 확인할 수 있다.
모든 컨테이너를 삭제하고싶다면?
docker rm \`docker ps -a -q\`

윈도우의 powerShell에서는 백틱을 지원하지 않아서 $()로 수행했다.
이미지를 삭제하고 싶다면?
docker rmi <이미지 id>
한 번에 사용하지 않는 컨테이너, 이미지, 네트워크 모두 삭제하고 싶다면?
docker system prune
도커를 쓰지 않을 때 모두 정리하고싶다면, 위의 docker system prune 명령어를 사용하면 된다.
하지만 이것도 실행 중인 컨테이너에는 영향을 주지 않음!
