성실한 사람이 되자

성실하게 글쓰자

This is spear

Tools

3. 도커를 이용한 프로젝트 업데이트 (update App on Docker)

Imaspear 2020. 6. 27. 01:33
728x90

 

 

 

도커 튜토리얼을 통해 도커 앱 업데이트를 시작해보도록 하겠습니다. 

 

그전 포스트들 

https://imspear.tistory.com/66

 

1. 윈도우에서 도커 시작하기(install Doker)

도커란? (What is Docker?)  Docker는 애플리케이션 개발, 배포 및 실행을위한 개방형 플랫폼입니다. 간단하게 말하면 여러분들이 만든 프로젝트를 배포하는데 도움을 주는 역할을 합니다. 도커의 장��

imspear.tistory.com

https://imspear.tistory.com/67

 

2. 도커의 간단한 응용(Docker)

 응용하기 도커의 튜토리얼을 이용해 간단한 응용을 배워볼까 합니다. 이 튜토리얼의 나머지 부분에서는 Node.js에서 실행되는 간단한 할 일 목록 관리자와 함께 작업하는 걸 배포합니다. 프로젝

imspear.tistory.com

 

 

작은 기능 요청으로 할 일 목록 항목이 없는 경우 제품 팀에서 "빈 텍스트"를 변경하라는 요청을 받았습니다.
 
그들은 그것을 다음과 같이 바꾸고 싶습니다 

소스 코드 업데이트

 

 

에서 src/static/js/app.js파일 업데이트 라인 56번째 줄에 비어있는 새 텍스트를 사용합니다.

 

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>

 

 

 

 

이전에 사용했던 것과 동일한 명령을 사용하여 업데이트 된 이미지 버전을 구축해 보겠습니다.

docker build -t getting-started .

 

윈도우 명령 프롬프트에서 실행했습니다. 

 

 

업데이트된 코드를 사용하여 새 컨테이너를 시작하겠습니다.

 

docker run -dp 3000:3000 getting-started

 

이렇게 실행하면됩니다. 

 

 

 

다음과 같은 오류가 발생했을 수 있습니다 (ID가 다름).

 

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.

 

이전 컨테이너가 여전히 실행 중이므로 새 컨테이너를 시작할 수 없습니다. 이것이 문제가되는 이유는 컨테이너가 호스트의 포트 3000을 사용하고 있고 컴퓨터의 한 프로세스 (컨테이너 포함)만 특정 포트를 수신할 수 있기 때문입니다. 이 문제를 해결하려면 이전 컨테이너를 제거해야합니다.

 

 

 

저 같은 경우에는 잠시 꺼둬서 오류는 뜨지 않았지만 밑에 사진처럼 포트 3000번에 하나의 이미지는 실행되고 있고 업데이트되지 않은 이미지는 정지해 있습니다. 

 

 

똑같은 이미지가 저장된다면 나중에 어느 게 업데이트된 이미지인지 모를 수 있습니다. 확실하게 삭제한 후에 컨테이너를 교체해주시기 바랍니다. 

 

기존 컨테이너 교체

 

컨테이너를 제거하려면 먼저 컨테이너를 중지해야 합니다.일단 중지되면 제거할 수 있습니다. 기존 컨테이너를 제거 할 수 있는 두 가지 방법이 있습니다. 가장 편한 경로를 자유롭게 선택하십시오.

 

 

docker ps명령을 사용하여 컨테이너의 ID를 가져옵니다.

 

docker ps

명령어 사용했을 때

 

docker stop컨테이너를 중지하려면명령을 사용하십시오 .

 

#Swap out <the-container-id> with the ID from docker ps 
docker stop <the-container-id>

 

 

 

저 같은 경우에는 컨테이너 ID 가 'ab5babe483fb' 이기 때문에  the-container-id 부분에 제 컨테이너 ID를 작성하도록 하겠습니다. 

docker stop ab5babe483fb

 

 

 

 

컨테이너가 중지되면 docker rm명령을 사용하여 컨테이너를 제거할 수 있습니다.

docker rm <the-container-id>

 

 

 

 

이 것도 제 컨테이너 ID를 작성하도록 하겠습니다. 

docker rm ab5babe483fb

 

 

.......실행되는 것 중에 하나를 삭제했는데 업데이트된 컨테이너를 삭제해버렸습니다.

....ㅋㅋㅋㅋㅋㅋㅋ

ㅜㅜㅜㅜㅜ

 

이 명령어는 실행되는 컨테이너를 보여준다는 점 꼭 숙지해야겠네요 ㅋㅋㅋ

docker ps

 

 

그럼 그냥 도커 윈도우에서 직접 삭제하도록 하겠습니다. 

간단하게 그냥 저 버튼을 누르면 삭제됩니다. 

 

.

 

도커 윈도우를 사용해서 간단하게 컨트롤할 수 있지만 실제적으로 리눅스에서 운영할 때에는 터미널에서 자주 사용하니까 연습하는 것도 좋아 보입니다. 

 

그럼 오늘의 마카롱은 여기까지~