사용되지 않는 Docker 네트워크 제거 방법

DockerBeginner
지금 연습하기

소개

Docker 는 일관되고 확장 가능한 환경에서 애플리케이션을 구축, 배포 및 관리할 수 있는 강력한 컨테이너화 플랫폼입니다. Docker 를 사용하면서 깨끗하고 효율적인 네트워크 구성을 유지하는 것이 중요합니다. 이 튜토리얼에서는 사용되지 않는 Docker 네트워크를 식별하고 제거하는 과정을 안내하여 Docker 환경을 최적화하는 데 도움을 드립니다.

Docker 네트워크 이해

Docker 네트워크는 Docker 생태계에서 기본적인 개념입니다. 컨테이너를 연결하고 서로 간의 통신을 가능하게 하는 방법을 제공합니다. Docker 는 각각 고유한 기능과 사용 사례를 갖는 여러 네트워크 드라이버를 지원합니다.

Docker 의 기본 네트워크 드라이버는 bridge 드라이버입니다. 이 드라이버는 호스트 머신에 가상 브리지를 생성하고 컨테이너를 연결합니다. 이를 통해 컨테이너가 서로 및 호스트 시스템과 통신할 수 있습니다. 다른 네트워크 드라이버로는 overlay, host, macvlan이 있으며, 각각 장점과 사용 사례가 있습니다.

graph LR A[호스트 머신] --> B[Docker Bridge 네트워크] B --> C[컨테이너 1] B --> D[컨테이너 2] B --> E[컨테이너 3]

overlay 네트워크 드라이버는 멀티 호스트 네트워킹에 사용됩니다. 다른 Docker 호스트의 컨테이너가 서로 통신할 수 있도록 합니다. host 네트워크 드라이버는 컨테이너와 호스트 간의 네트워크 분리를 제거합니다. macvlan 드라이버는 컨테이너에 MAC 주소를 할당하여 네트워크에서 물리적 장치로 보이도록 합니다.

다양한 네트워크 드라이버와 그들의 사용 사례를 이해하는 것은 Docker 를 사용할 때 중요합니다. 이를 통해 애플리케이션에 가장 적합한 네트워크 구성을 선택할 수 있습니다.

사용되지 않는 Docker 네트워크 식별 및 목록화

사용되지 않는 Docker 네트워크를 식별하고 목록화하려면 다음 Docker CLI 명령어를 사용할 수 있습니다.

모든 Docker 네트워크 목록화

시스템의 모든 Docker 네트워크를 목록화하려면 docker network ls 명령어를 사용합니다.

docker network ls

이 명령어는 다음 열을 포함하는 표를 출력합니다.

  • 네트워크 ID
  • 이름
  • 드라이버
  • 범위

사용되지 않는 Docker 네트워크 식별

사용되지 않는 Docker 네트워크를 식별하려면 docker network ls 명령어에 -f (필터) 옵션을 사용합니다.

docker network ls -f "dangling=true"

이 명령어는 연결된 컨테이너가 없는 모든 Docker 네트워크를 목록화합니다. dangling=true 필터는 연결된 컨테이너가 없는 네트워크만 표시하도록 합니다.

또는 실행 중인 컨테이너에 의해 사용되지 않는 모든 네트워크를 목록화하려면 다음 명령어를 사용할 수 있습니다.

docker network ls --filter "scope=local" --filter "driver=bridge" --filter "name=^((?!host|none|bridge).)*$" --format "{{.ID}}\t{{.Name}}\t{{.Driver}}"

이 명령어는 네트워크 목록을 필터링하여 기본 host, none, 또는 bridge 네트워크가 아닌 로컬 기반의 bridge 네트워크만 표시합니다.

이 명령어의 출력은 다음 열을 포함하는 표가 될 것입니다.

  • 네트워크 ID
  • 이름
  • 드라이버

이러한 명령어를 사용하면 시스템에서 사용되지 않는 Docker 네트워크를 쉽게 식별하고 목록화할 수 있습니다. 이는 Docker 환경 정리를 위해 유용합니다.

사용되지 않는 Docker 네트워크 제거

사용되지 않는 Docker 네트워크를 식별한 후 docker network rm 명령어를 사용하여 제거할 수 있습니다.

단일 사용되지 않는 네트워크 제거

단일 사용되지 않는 Docker 네트워크를 제거하려면 다음 명령어를 사용합니다.

docker network rm <network_name>

<network_name>을 제거하려는 네트워크의 이름으로 바꿉니다.

여러 사용되지 않는 네트워크 제거

여러 사용되지 않는 Docker 네트워크가 있는 경우 docker network ls 명령어에 -q (조용) 옵션을 사용하여 네트워크 ID 를 가져온 다음 docker network rm 명령어에 전달하여 한 번의 명령으로 제거할 수 있습니다.

docker network ls -f "dangling=true" -q | xargs docker network rm

이 명령어는 먼저 -f "dangling=true" 필터를 사용하여 docker network ls 명령어를 통해 사용되지 않는 (dangling) 모든 Docker 네트워크를 목록화합니다. -q 옵션은 네트워크 ID 만 출력하도록 합니다. 이러한 ID 는 xargs 유틸리티를 사용하여 docker network rm 명령어에 전달되며, 이는 나열된 모든 네트워크를 제거합니다.

모든 사용되지 않는 네트워크 제거

시스템의 모든 사용되지 않는 Docker 네트워크를 제거하려면 다음 명령어를 사용합니다.

docker network prune

이 명령어는 연결된 컨테이너가 없는 모든 네트워크를 제거합니다.

이러한 명령어를 사용하여 시스템에서 사용되지 않는 Docker 네트워크를 쉽게 제거할 수 있으며, 이는 Docker 환경을 깨끗하고 정돈하는 데 도움이 됩니다.

요약

이 튜토리얼에서는 사용되지 않는 네트워크를 식별하고 제거하여 Docker 네트워크를 효과적으로 관리하는 방법을 배웠습니다. 제시된 단계를 따르면 Docker 환경이 정돈되고 효율적이 되어 성능이 향상되고 리소스 소비가 줄어듭니다. Docker 네트워크 관리 기술은 모든 Docker 사용자 또는 관리자에게 필수적인 기술입니다.