반응형

컨테이너간 통신
- 네트워크 생성
- 터미널
- docker network create 작명
- ex) docker network create mynet1
- 명령어
- docker network: 모든 명령어 조회
- docker network ls: 실행 중인 네트워크
- 터미널에 컨테이너 넣기
- 실행 중인 컨테이너를 넣는 방법도 있지만
- 이미지 생성 시 해당 네트워크에 바로 넣는 방법을 배우고자 함 (더 편리)
- 터미널
- docker run -d -p 포트 —network 네트워크 —name 작명 실행이미지:태그
- ex) docker run -d -p 80:80 —network mynet1 —name nginx-container nginx:1 (nginx)
- ex) docker run -d -p 8080:8080 —network mynet1 —name server-container nodeserver:v1 (server)
- 터미널
- 입력하게 되면 두 개의 컨테이너가 생성되고
- 특정 컨테이너 클릭 후 inspect에 들어가서 Networks에 들어가면
- 연결되어 있는지와 할당된 IP 주소 등 확인 가능
- 특정 컨테이너 클릭 후 inspect에 들어가서 Networks에 들어가면
- 터미널
- 서로 다른 컨테이너 간 통신 확인
- 현재 nginx의 가상 주소는 172.18.0.2 이고
- server의 가상 주소는 172.18.0.3 이기에
- nginx에서 server로 접속 가능한 지 확인해보기 (172.18.0.3로 접속해보기)
- nginx 컨테이너에서 Exec에서 아래와 같이 코드 작성해보기
curl 172.18.0.3:8080
- 숫자로 접속하기 번거롭고 어렵다면 —name으로 작성한 것으로 접속 가능
- DNS 기능이 내부적으로 작동되고 있기에 가능
curl server-container:8080
- 그리고 좀 더 정확하게 입력을 하고자면, network 이름도 함께 작성하기
curl server-container.mynet:8080
- 다만
- 여전히 nginx 서버(컨테이너1,80)로 접속 하더라도, server(컨테이너2,8080)으로 전달이 안됨
- 이유는 myconfig1.conf에 그냥 localhost:8080으로 이동하라고만 입력했기에
- 그래서 웹서버컨테이너IP:8080으로 보내라고 코드 수정하기
- 또는 DNS으로 —name으로 작성한 컨테이너 이름으로 하기
- config를 수정 후 터미널에서 다시 아래 명령어를 입력하여 다시 빌드하기
docker build -t nginx:1 ./nginx
- 코드 해석(잊어버려서)
- ./nginx 폴더에 있는 dockerfile을 빌드
- -t는 태그를 옵션으로 작성할 것이다는 의미
- 그래서 nginx이름으로 태그를 1로 설정하여 빌드
- 여기서 중요한 것은 컨테이너를 실행할 때(run)
- 웹 서버가 실행된 이후 서버를 실행하기
- 또한 기존 실행 코드는 다음과 같이 수정할 수 있음
- 왜냐하면 이젠 nginx를 실행하면 웹서버로 이동하도록 설정했기 때문.
// 기존 docker run -d -p 8080:8080 --network mynet1 --name server-container n odeserver:v1 docker run -d -p 80:80 --network mynet1 --name nginx-container nginx: 1 // 변경 docker run -d --network mynet1 --name server-container nodeserver:v1 docker run -d -p 80:80 --network mynet1 --name nginx-container nginx:1
- 그리고
- 네트워크를 생성하게 되면 모드가 bridge가 기본적으로 설정되어짐
- 이를 host 모드로 변경하면, 나의 실제 컴퓨터 자원을 사용할 수 있음
- 다만 일반적으로 굳이 이렇게까지 변경할 필요는 없다고 함.
- 그리고 변경하게 되면 보안적으로 더욱 유의해야함.

'Docker&Container' 카테고리의 다른 글
Docker&Container - Network 1. nginx 만들기 (0) | 2024.12.14 |
---|---|
Docker&Container - Docker hub, push, pull (0) | 2024.11.30 |
Docker&Container - 성능을 위한 Dockerfile 작성법 (1) | 2024.11.29 |
Docker&Container - 컨테이너 다루기 (0) | 2024.11.29 |
Docker&Container - Dockerfile로 도커 이미지 만들기 (0) | 2024.11.29 |