소개
Docker 는 일관되고 재현 가능한 방식으로 애플리케이션을 패키징하고 배포할 수 있는 강력한 컨테이너화 플랫폼입니다. Docker 의 주요 기능 중 하나는 사용자 정의 브리지 네트워크를 생성할 수 있는 네트워킹 기능입니다. 이 튜토리얼에서는 사용자 정의 Docker 브리지 네트워크를 생성하고 컨테이너를 연결하여 애플리케이션 구성 요소 간의 안전하고 효율적인 통신을 가능하게 하는 방법을 배웁니다.
Docker 는 일관되고 재현 가능한 방식으로 애플리케이션을 패키징하고 배포할 수 있는 강력한 컨테이너화 플랫폼입니다. Docker 의 주요 기능 중 하나는 사용자 정의 브리지 네트워크를 생성할 수 있는 네트워킹 기능입니다. 이 튜토리얼에서는 사용자 정의 Docker 브리지 네트워크를 생성하고 컨테이너를 연결하여 애플리케이션 구성 요소 간의 안전하고 효율적인 통신을 가능하게 하는 방법을 배웁니다.
Docker 컨테이너는 가볍고 격리되어 설계되었지만, 여전히 서로 그리고 외부 세계와 통신해야 합니다. Docker 는 이러한 통신을 용이하게 하기 위한 여러 가지 네트워킹 옵션을 제공하며, 그 중 하나가 Docker 브리지 네트워크입니다.
Docker 브리지 네트워크는 동일한 호스트에서 실행되는 Docker 컨테이너를 연결하는 가상 네트워크입니다. Docker 컨테이너의 기본 네트워크 유형이며, 컨테이너 이름 또는 IP 주소를 사용하여 컨테이너 간에 통신할 수 있도록 합니다.
새로운 Docker 컨테이너를 시작하면 자동으로 bridge라는 기본 브리지 네트워크에 연결됩니다. 이 네트워크는 Docker 에서 생성되고 Docker 데몬이 관리합니다. bridge 네트워크는 간단한 사용 사례에 적합하지만, 서로 다른 호스트 간의 컨테이너 연결을 쉽게 할 수 없다는 등의 제한 사항이 있습니다.
이러한 제한 사항을 극복하기 위해 사용자 정의 Docker 브리지 네트워크를 만들 수 있습니다. 사용자 정의 브리지 네트워크는 다음과 같은 여러 가지 이점을 제공합니다.
bridge 네트워크의 컨테이너와 격리되어 보안을 강화하고 예기치 않은 상호 작용의 위험을 줄입니다.사용자 정의 Docker 브리지 네트워크를 만들려면 docker network create 명령을 사용할 수 있습니다. 사용자 정의 네트워크가 생성되면 새 컨테이너를 시작할 때 --network 플래그를 사용하거나 docker network connect 명령을 사용하여 기존 컨테이너를 네트워크에 연결하여 컨테이너를 연결할 수 있습니다.
위의 그림에서 Docker 데몬이 생성한 기본 bridge 네트워크와 사용자 정의 브리지 네트워크를 볼 수 있습니다. 컨테이너 1 과 2 는 기본 bridge 네트워크에 연결되고, 컨테이너 3 과 4 는 사용자 정의 브리지 네트워크에 연결됩니다.
사용자 정의 Docker 브리지 네트워크를 생성하려면 docker network create 명령어를 사용할 수 있습니다. 기본 구문은 다음과 같습니다.
docker network create [OPTIONS] NETWORK
사용자 정의 Docker 브리지 네트워크를 생성하는 단계는 다음과 같습니다.
터미널을 열고 다음 명령어를 실행하여 "my-custom-network"라는 사용자 정의 브리지 네트워크를 생성합니다.
docker network create my-custom-network
이렇게 하면 기본 설정으로 새로운 브리지 네트워크가 생성됩니다.
docker network ls 명령어를 사용하여 사용 가능한 모든 Docker 네트워크를 나열할 수 있습니다.
docker network ls
출력에는 새 "my-custom-network" 브리지 네트워크가 포함되어야 합니다.
네트워크 생성 시 추가 옵션을 지정하여 네트워크 구성을 사용자 지정할 수 있습니다. 예를 들어, 특정 서브넷과 게이트웨이를 가진 네트워크를 생성하려면 다음과 같이 합니다.
docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 my-custom-network
이렇게 하면 특정 서브넷과 게이트웨이를 가진 사용자 정의 브리지 네트워크가 생성됩니다.
docker network inspect 명령어를 사용하여 사용자 정의 네트워크의 세부 정보를 확인할 수 있습니다.
docker network inspect my-custom-network
이렇게 하면 서브넷, 게이트웨이 등을 포함한 네트워크 구성이 표시됩니다.
사용자 정의 Docker 브리지 네트워크를 생성하면 Docker 기반 애플리케이션의 격리, 구성 및 확장성을 개선할 수 있습니다.
사용자 정의 Docker 브리지 네트워크를 생성한 후에는 컨테이너를 해당 네트워크에 연결할 수 있습니다. 이를 수행하는 방법은 두 가지가 있습니다.
새 컨테이너를 시작할 때 --network 플래그를 사용하여 사용자 정의 네트워크에 연결할 수 있습니다. 예를 들어, 새 컨테이너를 시작하고 "my-custom-network" 네트워크에 연결하려면 다음과 같이 합니다.
docker run -d --name my-app --network my-custom-network nginx
이렇게 하면 새 Nginx 컨테이너가 시작되고 "my-custom-network" 브리지 네트워크에 연결됩니다.
docker network connect 명령어를 사용하여 기존 컨테이너를 사용자 정의 네트워크에 연결할 수도 있습니다. 예를 들어, "my-app"이라는 기존 컨테이너를 "my-custom-network" 네트워크에 연결하려면 다음과 같이 합니다.
docker network connect my-custom-network my-app
컨테이너를 사용자 정의 네트워크에 연결한 후에는 동일한 네트워크상의 다른 컨테이너에서 컨테이너 이름 또는 해당 네트워크 내 IP 주소를 사용하여 액세스할 수 있습니다.
위의 그림에서 세 개의 컨테이너가 사용자 정의 "my-custom-network" 브리지 네트워크에 연결된 것을 볼 수 있습니다. 이러한 컨테이너는 네트워크 내에서 컨테이너 이름 또는 IP 주소를 사용하여 서로 통신할 수 있습니다.
컨테이너를 사용자 정의 Docker 브리지 네트워크에 연결하면 Docker 기반 애플리케이션의 격리, 구성 및 확장성을 개선할 수 있습니다.
이 튜토리얼에서는 사용자 정의 Docker 브리지 네트워크를 생성하고, 컨테이너를 해당 네트워크에 연결하며, Docker 애플리케이션에 사용자 정의 네트워크를 활용하는 이점을 배웠습니다. 사용자 정의 Docker 브리지 네트워크를 이해하고 구현함으로써 컨테이너화된 서비스 간의 보안, 격리 및 통신을 개선하여 더욱 강력하고 확장 가능한 Docker 기반 인프라를 구축할 수 있습니다.