Docker 공부노트 - network

코변·2022년 10월 21일
0

도커 공부노트

목록 보기
4/5
post-thumbnail

Photo by Rubaitul Azad on Unsplash

도커의 network request

  • 다른 웹서버에서 데이터를 주고 받는 API통신
    • 특별한 코드의 수정이 필요하지 않다.
    • 똑같이 주소를 입력해서 통신하면 된다.
  • 내 로컬컴퓨터와의 통신
    • 내 로컬 컴퓨터의 몽고디비에 접근하려고 한다면 mongodb://localhost:27017 같은 방법으로는 접근할 수가 없다.(도커는 완전히 분리된 공간이기 때문에)
    • localhost 부분을 host.docker.internal로 바꿔주어야 호스트 컴퓨터와 통신할 수 있다.
  • 컨테이너간의 통신
    • docker container inspect container_name 명령어를 통해 네트워크세팅 아래에 있는 ip주소를 얻을 수 있다.
    • — network network_name 옵션을 통해서 컨테이너간의 통신이 가능한 네트워크를 만들 수 있다.
    • 네트워크 안에 있다면 굳이 아이피 주소를 찾아 넣을 필요가 없다. 컨테이너 이름을 넣어주면 된다.
    • mongodb:27017 처럼 사용이 가능하다. → 도커가 알아서 ip주소로 변환해줌

각각 컨테이너가 한 가지 주요 작업만 수행하는 것이 권장된다.

예를들어 Mongo DB 데이터베이스를 요구하는 애플리케이션이 있는 경우에도 애플리케이션의 모든 디펜던시 파일 및 이 앱에 속하는 폴더가 하나의 컨테이너와 하나의 이미지에서 실행되고,

Mongo DB 데이터베이스가 다른 이미지를 사용하여

다른 컨테이너에서 실행되는 것.

네트워크는 도커가 자동으로 생성해주지 않는다.

docker network create network_name
## 네트워크를 만들 수 있다.

docker network ls
## 네트워크를 리스팅한다.

Mongodb처럼 외부와 통신할 일 없는 컨테이너를 띄우는 경우 포트 번호를 명시해줄 필요가 없다.

Docker 네트워크 드라이버

Docker Networks는 실제로 네트워크 동작에 영향을 미치는 다양한 종류의 '드라이버'를 지원한다.

디폴트 드라이버는 'bridge' 드라이버이다. 이 드라이버는 모듈에 나타난 동작을 제공합니다 (즉, 컨테이너가 동일한 네트워크에 있는 경우, 이름으로 서로를 찾을 수 있음).

드라이버는 네트워크 생성 시 '--driver' 옵션을 추가하여 간단히 설정할 수 있습니다.

docker network create --driver bridge my-net

물론 'bridge' 드라이버를 사용하고자 하는 경우, 'bridge'가 디폴트이므로, 전체 옵션을 생략하면 된다.

Docker는 아래의 대체 드라이버도 지원하지만 대부분의 경우 'bridge' 드라이버를 사용한다.

  • host: 스탠드얼론 컨테이너의 경우, 컨테이너와 호스트 시스템 간의 격리가 제거된다 (즉, localhost를 네트워크로 공유함).
  • overlay: 여러 Docker 데몬 (즉, 서로 다른 머신에서 실행되는 Docker)이 서로 연결될 수 있다. 여러 컨테이너를 연결하는 구식의 / 거의 사용되지 않는 방법인 'Swarm' 모드에서만 작동한다.
  • macvlan: 컨테이너에 커스텀 MAC 주소를 설정할 수 있습니다. 그러면 이 주소를 해당 컨테이너와 통신하는데 사용할 수 있다.
  • none: 모든 네트워킹이 비활성화된다.
  • 써드파티 플러그인: 모든 종류의 동작과 기능을 추가할 수 있는 타사 플러그인을 설치할 수 있다.
profile
내 것인 줄 알았으나 받은 모든 것이 선물이었다.

0개의 댓글