Docker를 사용하다 보면 기본 Bridge Network뿐 아니라 프로젝트별로 여러 개의 사용자 정의 네트워크(User-defined Network)를 생성하게 됩니다. 특히 WordPress, MySQL, Nginx, Redis, Spring Boot 등 여러 서비스를 함께 운영하는 경우에는 서비스별 네트워크를 분리하여 관리하는 것이 일반적입니다.
하지만 서버를 오래 운영하다 보면 어떤 네트워크가 존재하는지, 어떤 Driver를 사용하는지, 현재 생성된 네트워크가 정상인지 확인해야 하는 상황이 자주 발생합니다.
이럴 때 사용하는 명령어가 바로 docker network ls입니다.
Docker Network LS는 현재 Docker Host에 생성되어 있는 모든 네트워크 목록을 조회하는 명령어입니다. 네트워크 이름, ID, Driver, Scope 등을 빠르게 확인할 수 있으며, 네트워크 관리의 시작 단계에서 가장 먼저 사용하는 명령어이기도 합니다.
이번 글에서는 Docker Network LS의 개념부터 기본 사용법, 주요 옵션, 출력 결과 해석, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Network LS란 무엇인가?
Docker Network LS는 현재 Docker 환경에 존재하는 네트워크 목록을 출력하는 명령어입니다.
Docker가 기본적으로 생성하는 Bridge, Host, None 네트워크뿐 아니라 사용자가 직접 생성한 모든 Docker Network를 확인할 수 있습니다.
새로운 네트워크를 생성한 후 정상적으로 만들어졌는지 확인하거나 불필요한 네트워크를 정리하기 전에 가장 먼저 사용하는 명령어입니다.
Docker Network LS는 언제 사용하는가?
다음과 같은 상황에서 자주 사용합니다.
- 생성된 네트워크 확인
- 프로젝트별 Network 관리
- Driver 확인
- Network 이름 확인
- 불필요한 Network 정리
- 장애 분석
Docker Network를 관리하는 거의 모든 작업의 시작 단계에서 사용하는 명령어입니다.
Docker Network LS 기본 사용법
가장 기본적인 사용 방법입니다.
docker network ls
실행하면 다음과 같이 출력됩니다.
NETWORK ID NAME DRIVER SCOPE
4c5b6f7a12cd bridge bridge local
1d2a3b4c5d6e host host local
7e8f9a1b2c3d none null local
5f6e7d8c9b0a web_network bridge local
8b9c0d1e2f3a backend_network bridge local
기본 네트워크와 사용자가 생성한 네트워크를 함께 확인할 수 있습니다.
출력 결과 이해하기
Docker Network LS의 출력 항목은 다음과 같습니다.
NETWORK ID
네트워크를 식별하는 고유 ID입니다.
Docker 내부에서 네트워크를 관리할 때 사용됩니다.
NAME
네트워크 이름입니다.
컨테이너 실행이나 연결 시 가장 많이 사용하는 항목입니다.
DRIVER
사용 중인 네트워크 Driver입니다.
Bridge, Host, Overlay, Macvlan 등이 표시됩니다.
SCOPE
네트워크가 적용되는 범위를 의미합니다.
일반적인 단일 서버에서는 대부분 Local로 표시됩니다.
특정 Driver만 확인하기
Bridge Driver만 확인하고 싶은 경우 Filter를 사용할 수 있습니다.
docker network ls \
--filter driver=bridge
Bridge Network만 출력됩니다.
이름으로 검색하기
특정 프로젝트 네트워크를 찾고 싶다면 이름으로 Filter를 사용할 수 있습니다.
docker network ls \
--filter name=web
이름에 web이 포함된 네트워크만 조회됩니다.
필요한 정보만 출력하기
Network 이름만 확인하고 싶다면 Format 옵션을 사용할 수 있습니다.
docker network ls \
--format "{{.Name}}"
출력 예시입니다.
bridge
host
none
web_network
backend_network
스크립트 자동화에서 자주 사용하는 방법입니다.
Docker Network LS 실무 활용 예제
Docker Network LS는 운영 환경에서 네트워크 구성을 확인하거나 불필요한 네트워크를 정리하기 전 가장 먼저 실행하는 명령어입니다.
모든 Docker Network 확인하기
가장 기본적인 사용 방법입니다.
docker network ls
현재 Docker Host에 생성된 모든 네트워크를 확인할 수 있습니다.
Bridge Network만 조회하기
Bridge Driver를 사용하는 네트워크만 조회합니다.
docker network ls \
--filter driver=bridge
Bridge 기반의 사용자 정의 네트워크를 관리할 때 유용합니다.
이름으로 특정 Network 찾기
프로젝트 이름을 기준으로 검색합니다.
docker network ls \
--filter name=backend
출력 예시는 다음과 같습니다.
NETWORK ID NAME DRIVER
91ac53ef7d12 backend_network bridge
프로젝트별 네트워크를 빠르게 찾을 수 있습니다.
Network 이름만 출력하기
스크립트에서 자주 사용하는 방법입니다.
docker network ls \
--format "{{.Name}}"
출력 결과입니다.
bridge
host
none
frontend
backend
database
Network ID와 이름만 출력하기
필요한 정보만 간단하게 출력할 수도 있습니다.
docker network ls \
--format "{{.ID}} {{.Name}}"
자동화 스크립트나 관리 도구에서 많이 사용하는 방식입니다.
생성 후 정상 여부 확인하기
새로운 네트워크를 생성한 후 목록을 확인합니다.
docker network create api_network
docker network ls
생성한 api_network가 목록에 표시되면 정상적으로 생성된 것입니다.
Linux 서버 문제 해결
운영 중인 Docker 서버에서 Nginx와 Backend 컨테이너가 서로 통신하지 못하는 문제가 발생했습니다.
관리자는 먼저 현재 생성된 네트워크를 확인했습니다.
docker network ls
확인 결과 Backend 컨테이너가 연결되어야 하는 backend_network가 삭제되어 있었습니다.
새로운 네트워크를 다시 생성했습니다.
docker network create backend_network
이후 컨테이너를 해당 네트워크에 다시 연결하자 서비스가 정상적으로 복구되었습니다.
운영 환경에서는 장애가 발생하면 가장 먼저 Docker Network 목록을 확인하는 것이 문제 해결의 첫 단계가 되는 경우가 많습니다.
Docker Network LS 사용 시 주의사항
Docker Network LS를 사용할 때는 다음 사항을 알아두면 좋습니다.
첫 번째는 기본 네트워크인 bridge, host, none은 Docker가 자동으로 생성하는 네트워크라는 점입니다.
특별한 이유가 없다면 삭제하지 않는 것이 좋습니다.
두 번째는 프로젝트별 사용자 정의 네트워크를 명확한 이름으로 생성하는 것이 관리에 도움이 됩니다.
예를 들어 wordpress_network, backend_network, redis_network처럼 용도를 이름에 포함하면 관리가 쉬워집니다.
세 번째는 오래된 프로젝트의 네트워크가 남아 있는지 주기적으로 확인하여 불필요한 리소스를 정리하는 것이 좋습니다.
네 번째는 네트워크 이름이 비슷한 경우에는 --filter 옵션을 적극 활용하면 원하는 네트워크를 빠르게 찾을 수 있습니다.
Best Practice
Docker Network LS를 사용할 때는 다음과 같은 방법을 추천합니다.
- 네트워크 생성 후 항상 목록을 확인합니다.
- 프로젝트별 네트워크를 분리하여 관리합니다.
- 의미 있는 네트워크 이름을 사용합니다.
--filter옵션으로 필요한 네트워크만 조회합니다.--format옵션을 활용하여 자동화 스크립트를 작성합니다.- 사용하지 않는 네트워크는 정기적으로 점검하고 정리합니다.
이러한 방법을 적용하면 Docker 네트워크를 더욱 체계적으로 관리할 수 있습니다.
자주 묻는 질문
Docker Network LS는 어떤 정보를 보여주나요?
Network ID, 이름, Driver, Scope 등 현재 생성된 네트워크 목록을 보여줍니다.
기본으로 생성되는 네트워크는 무엇인가요?
bridge, host, none 세 가지 네트워크가 기본적으로 생성됩니다.
특정 Network만 검색할 수 있나요?
가능합니다.
--filter 옵션을 사용하면 이름이나 Driver를 기준으로 원하는 네트워크만 조회할 수 있습니다.
Network 이름만 출력할 수도 있나요?
가능합니다.
--format "{{.Name}}" 옵션을 사용하면 이름만 간단하게 출력할 수 있습니다.
마무리
Docker Network LS는 현재 Docker 환경의 네트워크 구성을 확인하는 가장 기본적인 명령어입니다.
네트워크 생성 여부 확인, 프로젝트별 관리, Driver 확인, 장애 분석 등 다양한 상황에서 가장 먼저 실행하는 명령어이며, Docker 네트워크 관리의 출발점이라고 할 수 있습니다.
특히 --filter와 --format 옵션을 함께 활용하면 필요한 정보를 빠르게 조회할 수 있어 운영 서버와 자동화 환경에서도 매우 유용하게 사용할 수 있습니다.