IT/DevOps

[Docker] Application 업데이트하기

kykyky 2024. 2. 5. 04:35

이전 글 👇

 

2024.02.04 - [IT/DevOps] - [Docker] Overview, Containerize an application

 

[Docker] Overview, Containerize an application

Overview Docker는 우리가 만드려는 Application을 우리의 infrastructure(e.g. 호스트 컴퓨터?)로부터 분리할 수 있게 해줍니다. 따라서 이 Application의 배포가 더 용이해집니다. ✅아주 큰 구조 ✅그 중, Docker

intoky.tistory.com

 

 


Update the application


 

 

이미 어떤 App을 containerize한 상황해서, 이 App의 소스코드를 수정해서 다시 containerize하는 방법을 알아보겠습니다.

 

 

 

✅ 일단 소스코드 수정

 

예를 들어, src/static/js/app.js 파일의 56번째 줄을 아래와 같이 수정해야 하게 됐다 생각해봅시다.

우선 아래처럼 수정해주세요.

- <p className="text-center">No items yet! Add one above!</p>
+ <p className="text-center">You have no todo items yet! Add one above!</p>

 

 

✅ 새 Image 만들기

 

getting-started-app 폴더 안에서, 아래 명령어를 통해 Docker image를 만들어줍시다.

docker build -t getting-started .

 

 

엇 그런데, 그럼 원래 만들었던 Image는 어떻게 됐을까요?

Image 리스트를 확인해 봅시다. (명령어로도 가능하지만, 이번에는 Docker desktop에서 확인해보겠습니다.)

 

위처럼, 새로 만든 Image에 "latest"라는 Tag가 붙었습니다.

이전 Image에도 처음엔 latest가 붙어있었겠지만, 새 Image가 생기면서 그것이 떼어지고 <none>이 됨으로써, 이전 것과 새 것이 구별됩니다.

 

 

✅ 이전 Container를 우선 처리해야 해요

이전 Container도 3000번 port를 사용하기 때문에, 

만약 이것이 아직 running 상태라면, 

똑같이 3000번 port를 이용한 새 Container가 시작될 수 없겠지요.

 

 

아래 명령어를 통해 (아무 위치에서나), 이전 container를 stop합시다.

docker stop <이전 Container의 ID>

 

 

아래 명령어를 통해 (아무 위치에서나), 아예 삭제 해버릴수도 있습니다.

docker rm <이전 Container의 ID>

 

 

※ Container의 ID 찾는 법

 

방법 1. 아래 명령어를 통해 Container list를 확인합니다.

docker ps

 

 

방법 2. Docker desktop의 Containers 탭에서 확인합니다.

 

 

✅ 새 Container 시작하기

 

아래 명령어를 통해 (아무 위치에서나), 새 Image를 사용한 새 Container를 시작해봅시다.

docker run -dp 127.0.0.1:3000:3000 getting-started

 

 

그러면 새 Container가 잘 생겼는지 docker desktop에서 확인해보면 아래와 같습니다.

 

 

✅ App 실행해보기

 

3000번 포트로 설정한 우리의 업데이트된 App을 확인해봅시다.

 

 

주소창에 http://localhost:3000을 입력하여 접속할 수 있습니다.

우리가 소스코드를 통해 수정했던 부분이 정상적으로 바뀌어있습니다. (노란 밑줄)

 

 


 

 

감사합니다~!