-------------------------------------------------- 목차 ----------------------------------------------------
- 네트워크 명령어(생성, 확인, 삭제)
[실습 1] 컨테이너 내부 애플리케이션에서 월드 와이드 웹에 요청 보내기
[실습 2] 컨테이너 내부 애플리케이션과 로컬 머신에 있는 어플리케이션 통신하기
[실습 3] 노드 웹 API 컨테이너 <-> mongoDB 컨테이너
[실습 4] 컨테이너 네트워크
[참고] Postman 다운로드
-----------------------------------------------------------------------------------------------------------
기본적으로 컨테이너는 월드 와이드 웹에 요청(ex. HTTP)을 보낼 수 있다.
즉, 도커화된 컨테이너 내부의 애플리케이션과 웹 API 및 웹 페이지와 통신할 수 있다.
(+) 월드 와이드 웹(World Wide Web, www, w3)
: 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간
[실습 1] 컨테이너 내부 애플리케이션에서 월드 와이드 웹에 요청 보내기
1) app.js 코드 수정

2) 이미지 및 컨테이너 생성
> docker build -t favorites-node .
> docker run --name favorites -d --rm -p 3000:3000 favorites-node
3) Postman에서 GET 요청 보내기
> localhost:3000/movies

> localhost:3000/people

=> GET 요청을 보냈을 때 정상적으로 작동되는 것을 확인할 수 있다.
[참고] Postman 다운로드
Postman?
: 웹 API에 HTTP 요청을 보내는데 사용하는 간단한 도구

[실습 2] 컨테이너 내부 애플리케이션과 로컬 머신에 있는 어플리케이션 통신하기
(로컬 머신에 mongoDB 설치가 필요하여 실제로 진행하지는 않았다.)
1) app.js 코드 수정

=> 수정 전

=> 수정 후, docker 컨테이너 내부에서 알 수 있는 호스트 머신의 IP 주소로 변환되어 docker에 의해 인식된다.
(+) HTTP 요청

2) 이미지 및 컨테이너 생성
3) 확인
> localhost:3000/favorites
[실습 3] 노드 웹 API 컨테이너 <-> mongoDB 컨테이너
1) mongoDB 컨테이너 생성
> docker run -d --name mongodb mongo
2) IPAddress 찾기 및 복사
> docker container inspect mongodb

3) app.js 코드 수정

4) 이미지 및 컨테이너 생성
> docker build -t favorites-node .
> docker run --name favorites -d --rm -p 3000:3000 favorites-node
5) 컨테이너 확인

6) GET 요청

(+) 로컬 mongoDB와는 전혀 다른 데이터베이스이다.
7) 즐겨찾기 저장

(=> Json 파일 내용은 movies get 요청시 반환된 정보를 사용해라.)
8) GET 재요청

즉, 기존 로컬시스템에 있던 데이터베이스를 컨테이너 내부에 위치하도록 했다.
=> 단, 위의 방법은 데이터베이스 컨테이너 IP가 변경될 때마다 재빌드 해줘야한다.
● 네트워크 명령어
ㄱ. 생성
> docker network create <-네트워크 이름->
ㄴ. 확인
> docker network ls
ㄷ. 삭제
> docker network rm <-네트워크 이름->
[실습 4] 컨테이너 네트워크
1) 네트워크 생성 및 확인
> docker network create favorites-net
> docker network ls

2) 컨테이너 생성
> docker run -d --name mongodb --network favorites-net mongo
3) app.js 코드 수정

4) 이미지 및 컨테이너 생성
> docker run -t favorites-node
> docker run --name favorites --network favorites-net -d --rm favorites-node
5) GET 요청

6) 즐겨찾기 저장

7) GET 재요청

=> 컨테이너가 정상적으로 통신하고 있음을 확인할 수 있다.
(+) 네트워크로 컨테이너가 연결되어 있을 경우 포트 노출 할 필요 없다.
'여러가지 > Docker & AWS' 카테고리의 다른 글
[정리] 스스로 구축하는 AWS 클라우드 인프라 (1) | 2023.11.30 |
---|---|
[섹션 5] 다중 컨테이너 애플리케이션 구축하기 (0) | 2023.11.25 |
[섹션 3] 데이터 관리 및 볼륨으로 작업하기 (0) | 2023.11.25 |
[섹션 2] Docker 이미지 & 컨테이너: 코어 빌딩 블록 (0) | 2023.11.25 |
[유데미] Docker & Kubernetes: 실전 가이드 (0) | 2023.11.25 |