네트워크 연결 흐름

Category
스터디노트 Docker
Status
Published
Tags
Docker
Description
Published
Slug
도커 없이 웹서버를 사용하는 방법은 다음과 같다.
80번 포트에서 대기하도록 설정되어 있고,
웹서버에 요청하면, 80번 포트로 가서 특정 파일을 전해줌
notion image
 
 
도커를 이용해서 웹서버를 이용하는 방법을 생각하면
웹서버는 우선 컨테이너에 설치되게 됨.
컨테이너가 설치된 운영체제를 docker host라고 부름
하나의 docker host에는 여러개의 container가 만들어질 수 있음
notion image
container와 host모두 독립적인 실행환경이기 때문에, 각각 독립적인 호스트와 파일 시스템을 가지고 있음
 
notion image
웹브라우저에서 연결하려면, 호스트와 컨테이너가 연결되어 있어야 함
때문에 명령어를 host의 80번 포트와 container의 80번 포트를 연결해주도록 수정
 
이렇게 하면 호스트의 80번으로 들어온 신호가, 컨테이너의 80번 포트로 전송되게 됨
이렇게 연결하는 것을 port 포워딩이라고 함
 

만약 접속 경로가 8000번 포트로 바뀌었다면?
옵션의 앞의 값을 8000으로 변경해야 함
notion image
 

 
도커 이미지에서 httpd run을 하면
로컬 호스트의 몇번 포트에 들어왔을 때, container의 80번 포트로 연결시킬지 지정할 수 있음
notion image
notion image
 

cmd에서 위와 같은 동작을 하려면
docker run의 options를 눌러보면
notion image
 
여러 옵션들 중에서 -p라는 옵션이 있음 (publish의 줄임말)
→ 컨테이너의 포트를 호스트로 연결시키는 옵션
notion image
 
docker ps를 입력하면
ws2가 8080에서 80으로 연결되고 있다는 것을 볼 수 있음
notion image
 
docker run --name ws3 -p 8081:80 httpd
위와 같이 명령어를 입력하면,
ws3라는 이름으로 생성하고, 8081로 들어오면, 컨테이너의 80번 포트로 연결한다는 의미
notion image
notion image
 
위의 주소로 접속하면, 아래와 같이 잘 접속되었다고 뜨고
notion image
 
로그를 확인해 보면,
접속한 로그를 볼 수 있음
notion image
 
 
notion image