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

aws ec2 linux2 , docker, portainer

aws ec2 인스턴스에 docker 설치

  1. 인스턴스에 설치한 패키지 및 패키지 캐시를 업데이트합니다.
sudo yum update -y
  1. 최신 도커 엔진 패키지를 설치합니다.
  • Amazon Linux 2
sudo amazon-linux-extras install docker
  1. 도커 서비스를 시작합니다.
sudo service docker start
  1. ec2-user를 사용하지 않고도 도커 명령을 실행할 수 있도록 docker 그룹에 sudo.를 추가합니다.
sudo usermod -a -G docker ec2-user
  1. 로그아웃하고 다시 로그인해서 새 docker 그룹 권한을 선택합니다. 이를 위해 현재 SSH 터미널 창을 닫고 새 창에서 인스턴스를 다시 연결할 수 있습니다. 새 SSH 세션은 해당되는 docker 그룹 권한을 갖게 됩니다.

  2. ec2-user 없이도 sudo.가 도커 명령을 실행할 수 있는지 확인합니다.

docker info

portainer 설치

공식 사이트
https://documentation.portainer.io/v2.0/deploy/ceinstalldocker/

  1. portainer를 설치할 volume 생성
docker volume create portainer\_data
  1. portainer 다운 및 9000 포트에서 실행
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer\_data:/data portainer/portainer-ce

portainer 접속

주소창에 호스트 : 9000

docker swarm

docker swarm init

아래 내용이 나오면 성공

728x90

+ Recent posts