도커 헤딩하기(3) - 중지, 삭제, 업데이트

IronAiken2·2022년 12월 29일

[Docker]

목록 보기
3/5
post-thumbnail

저번 시간에는 이미지와 컨테이너의 빌드에 대해 알아보았다. 3000포트를 가진 로컬호스트 웹으로 todo 리스트를 만들었고, 정상적으로 리스트의 업로드와 삭제 기능을 구현하였다.

이번에는 해당 웹 어플리케이션을 업데이트 해보자!


컨테이너 업데이트

소스코드에서 텍스트 출력 부분을 업데이트 해주고, 동일한 커맨드를 입력하여 업데이트된 도커를 빌드할 것이다. 텍스트를 변경하고 도커를 다시 구동해보자.

$ docker build -t getting-started .
$ docker run -dp 3000:3000 getting-started.

도커를 구동하면 오류가 발생할 것이다. 이전에 생성해둔 컨테이너가 3000포트를 단독으로 사용하기 때문에, 동일 포트로 컨테이너를 생성할 수 없기 때문이다.

즉, 업데이트 내용을 적용하기 위해서는 컨테이너와 이미지를 삭제하고, 다시 빌드를 해주어야 한다.

컨테이너는 이미지를 기반으로 구동되며, 이미지는 Dockerfile에 선언된 내용을 기반으로 빌드된다. 때문에 코드를 변경하면, 이미지는 구버전의 코드로 빌드되어있기 때문에 이미지도 삭제 후 재빌드를 해주어야 한다.


컨테이너, 이미지 삭제

도커 데스크톱으로 컨테이너나 이미지를 삭제하는건 너무 쉽기때문에 CLI로 관리하는 법을 알아보자.

$ docker ps
$ docker image ls

위 명령어를 입력해주면, 돌아가고있는 컨테이너와 빌드된 이미지에 대한 리스트를 확인할 수 있다.

해당 명령어로 삭제하고 싶은 이미지와 컨테이너의 id를 확인한 후, 삭제 명령어를 통해 삭제해주자. 삭제 후, 빌드 명령어를 통해 이미지와 컨테이너를 다시 빌드해주는걸 잊지 말자.

$ docker rm <the-container-id>
$ docker rm 7b75823b5ed6
$ docker image rm <the-image-id>
$ docker rm 7sdve651df25
$ docker build -t getting-started .
$ docker run -dp 3000:3000 getting-started
$ docker ps
$ docker image ls -a

컨테이너와 이미지가 정상적으로 빌드되었는지 확인하기 위해 리스트 출력 커맨드를 입력해주고, 정상적으로 작동한다면 로컬호스트3000으로 접속해보자.

정상적으로 텍스트가 변경된걸 확인할 수 있다.


정리📜

  1. 도커 컨테이너는 고유한 포트를 가져야 한다.(중복 포트를 가지는 컨테이너는 존재하면 안된다.)
  2. 컨테이너화 한 어플리케이션을 변경하는 경우, 이미지를 삭제 후 다시 빌드해야 하며, 컨테이너 역시 새로 빌드한 이미지로 다시 구동시켜야 한다.
profile
- 우당탕탕 개발일기

0개의 댓글