docker network

Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능합니다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능해집니다.

portainer 에서 network 생성

network -> add network

name -> nginx-django 생성

container 를 network에 연결

container -> add container 의 하단부

container name 지정할때 주의 -> container name == host name

network 탭에서 container가 참가할 네트워크를 찾아 설정

network 내에서 요청

docker network 내에서는 컨테이너 이름을 호스트 네임으로 사용

그렇기에 nignx.conf 같은 설정에서 django 같은 서버를 호출할때 

컨테이너네임:포트번호 를 주소로 사용

아래의 proxy_pass 부분

worker_processes auto;

events {
}

http {
  server {
    listen 80;

    location / {
        proxy_pass http://django_container_gunicorn:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

 

728x90

네트워크 생성 이유

컨테이너 이름을 기반으로 서로 요청을 주고 받기 위해 생성

네트워크 생성

network -> add network

name 직관적으로 설정

컨테이너 생성

1. django container

name, image 지정

network 탭에서 위에서 만든 네트워크 지정

2. nginx 컨테이너 생성

name, image 지정

nginx는 사용자와의 통신을 위해 외부 포트 연결 필요 

참가할 네트워크 지정

nginx 설정파일 연결 (컨테이너 외부 파일을 내부로 연결시킬때 volumes의 bind를 통해 지정)

728x90

'Study > Docker' 카테고리의 다른 글

[Docker] portainer를 이용한 docker network 구성  (0) 2021.05.28
[Docker] aws ec2 Linux2, docker, portainer  (0) 2021.05.26

+ Recent posts