docker는 컨테이너들간, 외부 host와의 통신 위해 가상 linux bridge를 이용한다.
컨테이너 생성 시 네트워크를 지정하지 않으면 docker network ls 명령에서 나오는 것 중 bridge를 기본 네트워크로 사용한다.
기본 네트워크는 docker의 호스트 컴퓨터를 재시작하면 컨테이너에 할당했던 ip가 초기화되어 재할당시키므로 웹 서버나 db서버의 ip가 달라져 통신에 문제가 생길 수 있다.
이를 해결하기 위해 새로운 bridge를 만들고 컨테이너들을 기본 bridge가 아닌 새로 만든 bridge에 할당시킨다.
docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/16 myBridge
이후에 docker run 할 때 --network myBridge 옵션과 --ip 172.20.0.2 옵션을 추가하면 된다.
ip 옵션의 ip는 컨테이너마다 겹치지 않게 변경해줘야 한다. (172.20.0.2를 이미 한 컨테이너에서 적용했다면 다른 컨테이너엔 172.20.0.3을 적용해야 하는 것이다.)
참고
'개발 > Server' 카테고리의 다른 글
docker compose 작성 방법 및 명령어 모음 (0) | 2022.05.15 |
---|---|
localhost 도메인설정 (0) | 2022.05.08 |
[Docker][docker-compose] Nginx 컨테이너 생성 및 설정 (0) | 2022.04.28 |
docker 명령어 (0) | 2022.04.22 |
[Ubuntu] docker 설치 (0) | 2022.04.22 |