1. Docker network란?
- 도커 컨테이너는 분리된 파일 시스템과 네트워크를 갖고있어서 설정하지 않으면 파일 시스템과 네트워크 통신이 불가능함
- network를 통해서 도커 컨테이너끼리 통신할 수 있게 만들 수 있음
2. network 확인
1) 도커 네트워크 확인
docker network ls
2) 도커 네트워크 상세 정보 확인
docker network inspect bridge
3. 사용자 정의 network 설정하기
1) 네트워크 생성
docker network create {생성할 네트워크 이름}
2) 네트워크 연결과 컨테이너 실행
docker run -d -p 24017:24017 --network {네트워크명} --network-alias {컨테이너명} {이미지명}
- -d: 컨테이너를 백그라운드에서 실행
- -p {호스트 포트:컨테이너 포트}: 호스트 포트와 컨테이너 포트를 연결
- --network {네트워크명}: 컨테이너를 특정 네트워크에 연결
- --network-alias mongo: 컨테이너를 네트워크 상에서 mongo 라는 별칭으로 식별, 이 별칭을 사용하여 동일한 네트워크에 속한 다른 컨테이너가 이 컨테이너를 참조할 수 있음
- mongo: 사용할 이미지의 이름, 위와 같은 경우 MongoDB 공식 이미지 사용
3) 네트워크 연결 확인
- nicolaka/netshoot 이미지를 사용하여 쉘 스크립트를 실행
- dig 명령어는 연결 정보를 알 수 있음
docker run -it --network {네트워크명} nicolaka/netshoot
> dig mongo
- docker run: 도커 컨테이너 실행 명령어
- -it: 터미널 상에서 상호작용을 가능하게 하는 옵션, 컨테이너 안의 셸에 직접 명령어를 입력할 수 있음
- --network {네트워크명}: 특정 네트워크에 컨테이너 연결
- nicolaka/netshhot: nicolaka 사용자가 제공하는 유틸리티 도구가 포함된 컨테이너 이미지, 이 컨테이너는 네트워크 관련 유틸리티 및 도구를 사용할 수 있는 도구 상자 역할을 함
- dig: DNS 질의를 수행하는 명령어
- mongo: 조회하려는 호스트명
4) 어플리케이션 DB 링크 변경
- 기존 localhost를 mongo로 수정
5) 코드가 변경되었으므로 새로운 이미지를 생성(빌드)
6) 네트워크 연결하기
'Docker' 카테고리의 다른 글
도커(docker) 컨테이너 리소스 사용량 제한하기 (0) | 2022.12.16 |
---|---|
[Docker] 도커(docker) 편리하게 실행하기 - Docker-compose (0) | 2022.12.15 |
도커(Docker) 컨테이너에서 생성된 데이터 유지하기- named volume (0) | 2022.12.15 |
[Docker] 내가 만든 애플리케이션 도커로 실행하기, 이미지 공유하기 (0) | 2022.12.15 |
도커(Docker) 개념 잡기 (0) | 2022.12.14 |