Network
○ 두 대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것
○ 택배 우편과 인터넷 통신을 비교한 내용(쉽게 설명)
1. "송신처 주소"와 가까운 영업소에 모임
2. "수신처 주소"를 보고, 수신처 주소에 가까운 영업소로 전송
3. 영업소에서 "수신처 주소"에 도착
○ 인터넷에서 데이터를 송수신하는 흐름
1. "송신처 IP 주소"에 가까운 Router(네트워크기기; 택배 영업소 역할)에 데이터를 송신
2. Router는 "대상 IP 주소"를 보고 "대상 IP 주소"에 가까운 Router로 보냄
3. Router로부터 "송신처 IP 주소"가 부여된 컴퓨터(네트워크 기기)에 전
IP(Internet Protocol; 인터넷에서 데이터 전달 프로토콜)
○ IP 주소 : 인터넷상의 컴퓨터 주소. 인터넷에 연결되어 있는 기기에는 반드시 IP주소가 부여됨
○ 공인 IP & 사설 IP
● 공인 IP 주소 : 인터넷에 연결하는데 필요한 IP 주소
전 세계에서 유일한 IP로 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소
외부에 공개되어 있어 인터넷에 연결된 다른 장비로부터 접근 가능 So 방화벽 등 보안 설정해야 함
● 사설 IP 주소 : 가정 및 회사와 같은 조직 내의 네트워크(개인 네트워크)에서만 사용되는 IP 주소
어떤 네트워크 안에서 사용되는 IP주소
네트워크 안에 Router를 통해 할당받는 가상의 주소, 별도의 설정 없이 외부에서 접근 불가능
IP 주소 정의
○ 클래스 풀(classful) 방식
● e.g) 100대의 IP주소가 필요한 기업이 "클래스 C"를 사용했을 경우, 클래스 C에서 할당 가능한 호스트 수가 254개에서 필요한 IP주소 100대를 제외하면 154개의 IP주소가 낭비(254 - 100 = 154)
○ 클래스리스(Classless) 방식
● 클래스 풀 방식의 단점을 보완한 방식
● 서브넷 마스크를 사용해 "네트워크 영역"과 "호스트 영역"의 경계를 자유롭게 변경하는 것을 가능하게 한 방식
포트
○ 논리적인 접속장소
○ 인터넷 프로토콜(TCP/IP)을 사용할 때, client program이 network상 특정 서버 프로그램을 지정하는 방법 사용
○ 포트번호 : 0 ~ 65,535 (0 ~ 1023번까지의 포트번호는 주요 통신을 위한 규약에 따라 이미 정해진 포트)
포트 포워딩
○ 컴퓨터 네트워크 상에서 패킷이 방화벽 or 라우터 같은 네트워크 게이트를 지날 때 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용
○ 외부 포트와 내부포트는 서로 다를 수 있음
○ 내부에서 연결하려는 포트는 IP를 반드시 지정해야 함
○ 하나의 포트로 들어오는 연결을 두 IP로 포워딩 불가(하나의 포트는 하나의 포워딩만 가능)
○ 공유기가 할당한 아이피에만 포워딩 가능
Docker Network
○ Docker 컨테이너는 격리된 환경에서 돌아가기에 기본적으로 다른 컨테이너와 의 통신이 불가능
○ 여러 개의 컨테이너를 하나의 Docker network에 연결시키면 서로 통신 가능
○ 네트워크 종류
* Default : bridge
● bridge : 하나의 호스트 컴퓨터 내에서 컨테이너들 간 소통 가능하게 해 줌
● host : 컨테이너를 호스트 컴퓨터와 동일한 네트워크 상에 올림
● overlay : 여러 호스트에 분산되어 있는 컨테이너들 간에 연결을 위해 사용
네트워크 조회
docker network ls
네트워크 생성
○ 명령어 : docker network create <네트워크 이름>
default가 bridge 모드여서 생성하면 my-net이라는 이름의 bridge로 생성됨
docker network create
docker network ls
네트워크 상세 정보 조회
○ 명령어 : docker network inspect <네트워크 이름>
○ IPAM > Config : 네트워크 정보 확인
○ Containers : 연결된 컨테이너 정보 확인
딕셔너리 형태여서 Key만 잘 보면 파악할 수 있음
[현재 Container(연결된 것이 없다)]
docker network inspect my-net
네트워크에 컨테이너 연결 및 연결 확인
○ 명령어 : docker network connect <네트워크명> <컨테이너명>
(저는 이미지들을 다 지워버려서 다시 생성해 주었습니다.)
- 1) apache-image:v1 생성
- 2) 컨테이너 생성 및 실행
- 3) 연결
- 4) 확인(컨테이너 안에 없던 것이 생겼습니다)
docker build -t apache-image:v1 .
docker run -d -p 80:80 --name apache-v1 apache-image:v1
docker network connect my-net apache-v1
docker network inspect my-net
네트워크에서 컨테이너 연결 해제 및 연결 확인
○ 명령어 : docker network disconnect <네트워크명> <컨테이너명>
- 1) 연결 해제
- 2) 확인(컨테이너가 다시 빈 것을 확인)
- 3) 네트워크 리스트 확인
docker network disconnect my-net apache-v1
docker network inspect my-net
docker network ls
네트워크 제거 및 확인
○ 명령어 : docker network rm <네트워크명>
docker network rm my-net
docker network ls
'Networks > Docker & Linux' 카테고리의 다른 글
SK networks AI Camp - ubuntu 실행 시 에러 슈팅 (0) | 2024.07.30 |
---|---|
SK networks AI Camp - Linux(설명,명령어 및 예제) (0) | 2024.07.30 |
SK networks AI Camp - docker 예제 (0) | 2024.07.30 |
SK networks AI Camp - docker 명령어 사용(2) (0) | 2024.07.29 |
SK networks AI Camp - docker 명령어 사용 (0) | 2024.07.29 |