크래프톤정글6주차 - (컨테이너 - 이더넷 통신)

김태성·2024년 3월 1일
0
post-thumbnail

적어놓고 까먹고 있었는데 6주차 프로잭트 중에 작성한 내용이다.

일반적으로 가상머신/컨테이너로 돌아가는 서버의 경우 외부 이더넷/인터넷 과의 연결이 되지 않는다. 그렇기 때문에 도커를 쓰는 우리는 필연적으로 외부 인터넷과 도커 내부의 컨테이너를 연결하는 것을 해야 한다.

포트 포워딩

포트포워딩은 패킷이 라우터/방화벽 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP주소와 포트번호 결합의 통신요청을 다른 곳으로 넘겨주는 NAT(네트워크 주소 변환)의 응용이다.

즉 외부 인터넷에서 내가 쓰는 이더넷의 라우터로 정보를 전달할때(보통은 공유기가 되겠다) 공유기의 IP를 지목해서 정보를 전송하고, 공유기는 각각의 컴퓨터에게 전용 IP로 재변환한다는 것이다.

하지만 도커를 사용할 때는 한가지 문제가 생기는데,

컴퓨터 안에서 또다른 서버를 돌리기 때문에 내 컴퓨터IP로 정보가 들어오면 인식을 하지 못한다는 것이다.

그렇기 때문에 우리는 도커 컨테이너 안에서 서버를 돌릴때,
우리 컴퓨터에서 라우터 기능 을 사용해서 외부에서 들어오는 정보와 내부 서버를 연결해 줘야 한다.

이번 문제 해결 방법은 다음과 같다.

  • 기존에 있는 컨테이너는 포트포워딩을 할 수 없다.

  • 그럼으로 셋팅이 되어 있는 이미지 파일을 받아 온 후, 포트포워딩을 한 새로운 컨테이너를 생성한다.(컨테이너 만들때 -p hostport:containerport 명령어 넣으면 됨.)

  • 포트포워딩이 되었으니 tiny 서버 make 이후 ./tiny로 서버 실행

  • 휴대폰으로 같은 와이파이 접속 후 , 이더넷 네트워크 ip:hostport 번호로 이동하면 ip:containerport로 자동 연결된

++ 추가로 컨테이너를 새로 만들 필요 없이, 기존의 컨테이너를 commit을 통해 이미지로 만들고, 새로 만들면서 포트포워딩을 하면 된다고 한다...

NAT , PAT

profile
닭이 되고싶은 병아리

0개의 댓글

관련 채용 정보