-
docker : step 2) Application 업데이트 하기Full-Stack 2023. 6. 3. 14:40반응형SMALL
docker : step 1)에서 만든 container화된 application을 수정해보겠습니다.
소스 코드 수정하기
1. 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> ...
2. 업데이트된 버전을 docker build CLI 명령을 이용하여 다시 빌드합니다.
docker build -t getting-started .
3. docker run CLI 명령으로 container를 다시 실행시킵니다.
docker run -dp 3000:3000 getting-started
아마도 아래와 유사한 에러가 발생할 것입니다.
docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell (bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 0.0.0.0:3000 failed: port is already allocated.
이것은 기존의 container가 이미 실행중에 있어서 그렇습니다. 그 이유는 이전 컨테이너가 이미 호스트의 포트 3000번을 사용하고 있고 한 프로세스(컨테이너 포함)만 특정 포트를 수신 대기할 수 있기 때문입니다. 이 문제를 해결하려면 이전 컨테이너를 제거해야 합니다.
container 삭제하기
컨테이너를 제거하려면 먼저 중지해야 합니다. 중지되면 제거할 수 있습니다. CLI 또는 Docker Desktop의 그래픽 인터페이스를 사용하여 이전 컨테이너를 제거할 수 있습니다. 가장 편한 방법을 선택하세요.
1. docker ps 명령으로 현재 실행중인 container의 id를 확인합니다.
docker ps
2. docker stop 명령을 사용하여 컨테이너를 중지합니다. 아래의 예제에서 <the-container-id>를 docker ps의 ID로 바꿉니다.
docker stop <the-container-id>
3. 컨테이너가 중지되면 docker rm 명령을 사용하여 컨테이너를 제거할 수 있습니다.
docker rm <the-container-id>
docker rm 명령에 force 플래그를 추가하여 단일 명령으로 컨테이너를 중지하고 제거할 수 있습니다. 예: docker rm -f <컨테이너 ID>
업데이트된 Application을 다시 실행하기
1. 이제 docker run 명령을 이용하여 업데이트된 app을 다시 실행시킬 수 있습니다.
docker run -dp 3000:3000 getting-started
2. http://localhost:3000에서 브라우저를 새로 고치면 업데이트된 텍스트가 보입니다.
출처 : docker 공식 문서 홈페이지(Update the application)
Update the application
docs.docker.com
반응형LIST'Full-Stack' 카테고리의 다른 글
SQL(Structured Query Language) (0) 2023.11.17 데이터베이스(Database) 개론 (0) 2023.11.16 docker : step1) Application의 Container를 만들고 실행하기 (0) 2023.06.03 Introduction (0) 2023.06.03 docker Overview (0) 2023.06.03