Docker

[Docker] 4-4. 컨테이너의 통신

patrick-star 2023. 5. 20. 12:21
728x90

컨테이너와 통신할 때

웹 브라우저를 통해서 컨테이너에 접근하려면 외부와 접속하기 위한 설정이 필요하다. 이를 위해서 포트(port)를 설정한다.

ex) 아파치(Apahce)

⇒ 서버에서 정해둔 포트(80번 포트)에서 웹 사이트에 접근을 기다리고 접근해오면 요청에 따라 웹 사이트의 페이지를 제공

하지만, 컨테이너 내부에서 실행 중인 아파치는 외부와 직접 연결되지 않았기 때문에 외부에서 접근할 수 없다.
그래서 컨테이너를 실행 중인 물리적 컴퓨터가 외부의 접근을 대신 받아 전달할 수 있도록 설정한다.

예를 들어, -p 8080:80과 같이 설정했다면
컨테이너를 실행중인 물리적 컴퓨터의 8080번 포트컨테이너의 80번 포트를 연결한 것이다.
(물론, 이때, 8080번 포트는 다른 SW가 사용하는 포트와 겹치지 않아야 한다)

그리고 컨테이너를 설정하면서 물리적 컴퓨터의 포트번호가 서로 겹치지 않도록 설정해줘야 한다.

ex) A 컨테이너 ⇒ -p 8080:80 // B 컨테이너 ⇒ -p 8081:80 // C 컨테이너 ⇒ -p 8082:80

여기서는 아파치로 예를 들었지만 mysql, flask, nginx 를 가지고 컨테이너를 만들 때도 동일한 내용이 적용된다.

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스