► 로컬 호스트와 컨테이너 통신하기
컨테이너와 로컬 호스트가 통신 하지 않는 다는 사실을 알 수 있다.
> 따라서 database 코드를 수정해 주어야 한다.
도커 컨테이너 내부에서 알 수 있는 호스트 머신 ip 주소로 변환 해 주어야 한다
► 컨테이너 간 통신
1.
> 하지만 첫 번쨰 방법은 주소를 하드코딩 해 주어야 해서, 컨테이너의 IP 주소가 바뀌면 계속 바꾸어 주어야 한다.
Docker Networks 소개: 우아한 컨테이너 간 통신
1. network 컨태이너 만들기
> docker network create <만들 네트워크 이름>
2. network 컨테이너와 다른 컨테이너를 연결
3. js 코드로 가서 connect 부분에서 호스트 부분을 수정해 준다
4. 다시 build
5. docker container를 실행시키는 코드에 --network <network 컨테이너 이름 추가>
Docker 네트워크 드라이버
> Docker Networks는 실제로 네트워크 동작에 영향을 미치는 다양한 종류의 '드라이버'를 지원
> 디폴트 드라이버는 'bridge' 드라이버, 모듈에 나타난 동작을 제공
> 네트워크 생성 시 '--driver' 옵션을 추가하여 간단히 설정
- overlay: 여러 Docker 데몬 (즉, 서로 다른 머신에서 실행되는 Docker)이 서로 연결. 여러 컨테이너를 연결하는 구식의 / 거의 사용되지 않는 방법인 'Swarm' 모드에서만 작동
- macvlan: 컨테이너에 커스텀 MAC 주소를 설정. 그러면 이 주소를 해당 컨테이너와 통신하는데 사용
- none: 모든 네트워킹이 비활성화
- 써드파티 플러그인: 모든 종류의 동작과 기능을 추가할 수 있는 타사 플러그인을 설치
mongodb 권한 설정하기
1. -e 옵션을 통해 env를 추가하여 name과 password를 추가한다
2. ' mongodb:// ' 뒤에 ' id : password@ ' 부분을 추가하고 끝에 ' authSource=admin '을 추가한다
✭ env 값 자동으로 넣기
1. Dockerfile에 env 값 추가
2. 자바스크립트 코드에 ${process.env.MONGODB_USERNAME}, ${process.env.MONGODB_PASSWORD}를 추가한다.
[출처] https://www.udemy.com/course/docker-kubernetes-2022/learn/lecture/30289916#overview
'DevOps BootCamp > 도커' 카테고리의 다른 글
컨테이너 - 볼륨과 환경 변수 (1) | 2023.04.13 |
---|---|
도커 푸시하기 (0) | 2023.04.13 |
두 개의 도커 이미지 다루기 (0) | 2023.04.12 |
왜 도커인가? (0) | 2023.04.11 |
도커 컨테이너 차트 시트 (0) | 2023.04.10 |