초보 개발자
docker network 본문
도커를 사용하지 않는다면 컴퓨터에 webserver를 설치하고 특정 폴더에 html파일을 넣어 놓은 뒤 특정 포트로 서버를 실행 시킨다면 브라우저에서 설정해 놓은 포트에 접근하면 그 웹서버와 파일에 접근하는 방식이었다.
도커를 이용하면 웹서버가 컨테이너에 설치가 된다. 그리고 그 컨테이너가 설치된 운영체제를 host라고 부른다. 즉 하나의 host에는 여러개의 container가 만들어 질 수 있다. 컨테이너와 호스트 모두 독립적인 실행환경이기에 독립적인 포트와 파일 시스템을 가지고 있다.
그림으로 나타내면 아래와 같다.
하지만 아까처럼 웹브라우저에서 80번 포트로 접근하면 과연 서버에 연결이 될까?? 그림에서 보이다 싶이 host의 80번 포트에는 아무것도 연결이 되어있지 않다. 그럼 어떻게 하면 될까??
host의 80번 포트와 container의 80번 포트를 이어주면 된다. d이렇게 해주면 host와 container의 포트가 연결이 된다.
앞의 80은 host의 포트 뒤의 80은 container의 포트이다.
docker run -p 80:80 httpd
이렇게 설정을 해주면 host의 80번 포트로 들어온 신호가 container의 80번 포트로 전송이 된다. 이렇게 연결된 포트로 신호를 전달하는 것을 port forwarding이라고 한다.
만약에 접속 경로가 8000번 포트로 변경이 된다면 어떻게할까?? 들어오는 포트 번호를 8000번 포트로 변경해주면 된다!.
만약 아래와 같이 2개의 웹서버를 실행을 시킨다면 의아해 할 수도 있다 2개의 웹서버라고 했는데.. 같은 80번 포트를 사용하네?? 그럼 어느 서버에 접속을 하는거지?? 라고 말이다.
docker run --name ws2 -p 8080:80 httpd
docker run --name ws3 -p 8081:80 httpd
각 컨테이너 마다 마다의 독립적으로 port번호가 따로 존재한다고 생각하면 될 것이다. 첫 컨테이너의 80포트와 host의 8080 컨테이너를이어준 것이고, 두 번째 컨테이너의 80포트와 host의 8081포트를 이어준 것이라고 생각하면 된다.
아래의 내용을 참조하였습니다.
생활코딩 Docker 입문수업 - 5. 네트워크 - YouTube
'AI 웹개발 트랙 - 내배캠 > 9주차 ~' 카테고리의 다른 글
docker 이미지 만들고 docker hub에 올려보기 ! (0) | 2022.03.07 |
---|---|
docker 컨테이너 편집 (0) | 2022.03.07 |
docker hub, pull, run (0) | 2022.03.07 |
docker란? docker설치 (0) | 2022.03.07 |
동기 비동기에 대한 고찰.... (0) | 2022.03.04 |