Featured image of post 2. Update the application

2. Update the application

도커 시작하기

애플리케이션과 컨테이너 이미지를 업데이트 및 삭제할 수 있다.

소스 코드 업데이트 하기

1
2
3
4
...
-                <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>
...

1
docker build -t getting-started .

1
2
3
4
docker run -dp 3000:3000 getting-started

docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell 
(2b5285b3ebfa65b51a44116c620e56b96b787874c71b25c8643b6a9ee137cb49): Bind for 0.0.0.0:3000 failed: port is already allocated.

src/static/js/app.js의 56 라인의 소스 코드를 수정한다.

이전과 마찬가지로 buildrun 명령을 실행하면 기존 컨테이너가 이미 호스트의 포트 3000을 사용하고 있어 오류가 발생한다. 이 문제를 해결하려면 이전 컨테이너를 제거해야 한다.

이전 컨테이너 지우기

컨테이너를 제거하려면 먼저 중지되어야 한다. 그 후 CLI 또는 Docker Desktop을 사용하여 제거할 수 있다.
CLI를 통해 컨테이너를 중지하고, 삭제하기 위해서 컨테이너 ID가 필요한데 docker ps 명령을 통해 확인할 수 있다.

1
2
3
4
docker ps

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
2b5285b3ebfa   getting-started   "docker-entrypoint.s…"   35 minutes ago   Up 35 minutes   0.0.0.0:3000->3000/tcp   youthful_yonath

1
docker stop <the-container-id>

1
docker rm <the-container-id>

force 플래그를 docker rm 명령에 추가하여 컨테이너를 중지하고 제거할 수도 있다.

1
docker rm -f <the-container-id>

업데이트된 앱 컨테이너 실행하기

1
2
docker run -dp 3000:3000 getting-started
9732df7c2474fea5223bcd682bbd1a3b7f18cc1f965330bd666478d10a7a73cb

이전과 같은 docker run 명령으로 업데이트된 애플리케이션이 실행된 것을 확인할 수 있다.