728x90
Docker Network
도커 컨테이너 간 연결을 하기 위해서는 Docker Network를 사용해야 한다.
즉, Docker Network란 같은 호스트 내에서 실행중인 컨테이너 간 연결할 수 있도록 돕는 논리적 네트워크 개념이다.
공식문서를 보면 --link는 곧 사라질 예정이며, 해당 기능 대신 Network를 사용하도록 권장하고 있다.
종류
- Default Bridge Network
Docker에서 제공하는 네트워크로, 실제 프로덕션 환경에 적합하다고 볼 수는 없다. 간단히 개발환경에서 테스트를 위해 사용하면 좋다.
- User-Defined Bridge Networks
같은 Docker Host 내에서 실행중인 컨테이너 간 연결할 수 있는, 사용자 정의 브릿지 네트워크이다. 실제 프로덕션 환경에 적합하다.
- Overlay Networks
보통 docker swarm에서 사용된다.
User-Defined Bridge Networks 예제
Network 생성
C:\Users\user>docker network create test-network
50a45c1120abe898fca56b98314ac0f9f6815d5537ff3996e43ecb4846864a7b
C:\Users\user>docker network ls
NETWORK ID NAME DRIVER SCOPE
47e6d2868ebb bridge bridge local
2c4c8daffbb2 host host local
4629b4367339 none null local
50a45c1120ab test-network bridge local
먼저 docker network create {네트워크명}을 통해 새로운 네트워크를 생성하고, docker network ls를 통해 네트워크가 잘 생성되었는지 확인한다.
Network를 연결하여 컨테이너 실행
docker run -d -p 8080:8080 --network test-network --name checkdb springboot_checkdb
db와의 연결을 확인하는 checkdb 컨테이너를 실행한다.
- -d : 백그라운드에서 컨테이너가 실행되도록 함
- -p 8080:8080 : 호스트와 컨테이너의 포트를 연결(포워딩) <host port number:container port number>
- --network : 생성한 custom network를 입력함
- --name : 컨테이너의 이름을 지정
이미 동작중인 컨테이너에 네트워크 연결
현재 db 컨테이너는 이미 동작중이다. 따라서 동작중인 컨테이너에 test-network를 연결시키겠다.
docker network connect test-network mariadb
docker network connect {네트워크명} {컨테이너명}을 입력해 컨테이너와 네트워크를 연결한다.
참고
728x90
'Infra > Docker' 카테고리의 다른 글
[Docker] Docker Compose 사용해 web, db 컨테이너 연결하기 (springboot, mariadb) (2-tier 구조) (0) | 2021.11.17 |
---|---|
[Docker] Docker Compose 사용하기 (0) | 2021.11.17 |
[Docker] Dockerfile 작성 / Build(이미지 제작) (0) | 2021.11.16 |
[Docker] 도커에 MariaDB 설치하기 (0) | 2021.11.16 |
[Docker] 도커에 Spring Boot 구축하기 (0) | 2021.11.16 |