이전 글 👇
2024.02.04 - [IT/DevOps] - [Docker] Overview, Containerize an application
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을 입력하여 접속할 수 있습니다.
우리가 소스코드를 통해 수정했던 부분이 정상적으로 바뀌어있습니다. (노란 밑줄)
감사합니다~!
'IT > DevOps' 카테고리의 다른 글
[Docker] Container의 filesystem, Database 유지하기: 1. Volume mount (0) | 2024.02.06 |
---|---|
[Docker] Application 공유하기: Docker registry, Docker Hub (0) | 2024.02.05 |
[Docker] Overview, Application containerize하기 (0) | 2024.02.04 |
[Pyinstaller] exe 파일 못 만드는 오류! (yolo ultralytics 관련) (2) | 2023.08.18 |
Docker, Kubernetes (0) | 2023.05.05 |