Infra/Docker

[Docker] Docker Network 사용하기

당닝 2021. 11. 17. 11:34
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 {네트워크명} {컨테이너명}을 입력해 컨테이너와 네트워크를 연결한다.

 

 

참고

 

Docker - Docker Network란? (Docker Netowkr 사용예제)

Docker custom network 사용하기 Docker Network에 대해 1. Docker Network 란? docker container로써 실행된 spring boot 에서 마찬가지로 contatiner로써 실행중인 mysql server 에 접근하기 위해서는..

galid1.tistory.com

 

728x90