docker network disconnect 명령을 사용하여 컨테이너를 네트워크에서 분리하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker network disconnect 명령어를 사용하여 컨테이너 네트워크 연결을 관리하는 방법을 배우게 됩니다. 먼저 사용자 지정 네트워크를 생성하고 이에 연결된 컨테이너를 실행하는 것으로 시작합니다.

그 다음, 기존 컨테이너를 추가 네트워크에 연결하는 방법을 보게 됩니다. 마지막으로, 컨테이너를 특정 네트워크에서 분리하고 분리를 확인하는 방법을 배우게 됩니다. 이 실습을 통해 컨테이너 네트워크 연결성을 제어하는 실질적인 경험을 얻을 수 있습니다.

네트워크 및 컨테이너 생성

이 단계에서는 사용자 지정 Docker 네트워크를 생성하고 이에 연결된 컨테이너를 실행하는 방법을 배우게 됩니다. 기본적으로 Docker 컨테이너는 bridge 네트워크에 연결되지만, 사용자 지정 네트워크를 생성하면 컨테이너 간의 더 나은 격리 및 통신 제어가 가능합니다.

먼저, my-network라는 새 브리지 네트워크를 생성해 보겠습니다.

docker network create my-network

출력에 새로 생성된 네트워크의 ID 가 표시되어야 합니다.

다음으로, Docker Hub 에서 nginx 이미지를 가져오겠습니다. 이 이미지는 컨테이너를 생성하는 데 사용됩니다.

docker pull nginx

이 명령은 nginx 이미지를 로컬 머신으로 다운로드합니다.

이제 Nginx 컨테이너를 실행하고 방금 생성한 my-network에 연결해 보겠습니다. 컨테이너 이름을 my-nginx로 지정합니다.

docker run -d --name my-nginx --network my-network nginx

이 명령을 자세히 살펴보겠습니다.

  • docker run: 이 명령은 컨테이너를 실행하는 데 사용됩니다.
  • -d: 이 플래그는 컨테이너를 detached 모드 (백그라운드에서 실행됨) 로 실행합니다.
  • --name my-nginx: 이 옵션은 컨테이너에 my-nginx라는 이름을 할당합니다.
  • --network my-network: 이 옵션은 컨테이너를 생성한 my-network에 연결합니다.
  • nginx: 이것은 컨테이너를 생성하는 데 사용할 이미지입니다.

명령을 실행한 후 Docker 는 my-nginx 컨테이너를 시작하고 my-network에 연결합니다.

컨테이너를 네트워크에 연결

이전 단계에서는 네트워크를 생성하고 이에 연결된 컨테이너를 실행했습니다. 이 단계에서는 이미 실행 중인 컨테이너를 추가 네트워크에 연결하는 방법을 보여드리겠습니다. 이는 컨테이너가 다른 네트워크의 다른 컨테이너와 통신해야 하는 경우에 유용합니다.

먼저, another-network라는 다른 새 브리지 네트워크를 생성해 보겠습니다.

docker network create another-network

이 새 네트워크의 ID 가 출력에 표시되어야 합니다.

이제 기존 my-nginx 컨테이너를 이 새로운 another-network에 연결합니다.

docker network connect another-network my-nginx

이 명령은 지정된 컨테이너 (my-nginx) 를 지정된 네트워크 (another-network) 에 연결합니다. 이제 컨테이너는 my-networkanother-network 모두에 네트워크 인터페이스를 갖게 됩니다.

컨테이너가 두 네트워크에 모두 연결되었는지 확인하기 위해 컨테이너의 네트워크 설정을 검사할 수 있습니다.

docker inspect my-nginx

출력에서 "Networks" 섹션을 찾습니다. my-networkanother-network 모두에 대한 항목이 표시되어야 하며, 이는 컨테이너가 두 네트워크에 성공적으로 연결되었음을 나타냅니다.

컨테이너를 네트워크에서 분리

이전 단계에서는 my-nginx 컨테이너를 추가 네트워크인 another-network에 연결했습니다. 이 단계에서는 컨테이너를 특정 네트워크에서 분리하는 방법을 배우겠습니다. 이는 더 이상 컨테이너가 특정 네트워크의 일부가 될 필요가 없을 때 유용합니다.

my-nginx 컨테이너를 another-network에서 분리하려면 docker network disconnect 명령을 사용합니다.

docker network disconnect another-network my-nginx

이 명령은 네트워크 이름 (another-network) 과 컨테이너 이름 (my-nginx) 을 인수로 사용합니다.

이 명령을 실행한 후 컨테이너는 지정된 네트워크에서 제거됩니다. 컨테이너는 공유 네트워크에 있지 않는 한 another-network의 다른 컨테이너와 더 이상 통신할 수 없습니다.

컨테이너가 분리되었는지 확인하기 위해 컨테이너의 네트워크 설정을 다시 검사할 수 있습니다.

docker inspect my-nginx

출력에서 "Networks" 섹션을 살펴보십시오. 이제 my-network만 표시되고 another-network는 표시되지 않아야 합니다. 이는 컨테이너가 another-network에서 성공적으로 분리되었음을 확인합니다.

컨테이너 분리 상태 확인

이전 단계에서 my-nginx 컨테이너를 another-network에서 분리했습니다. 이 단계에서는 컨테이너가 실제로 더 이상 another-network에 연결되어 있지 않은지 확인하기 위해 최종 확인을 수행합니다.

docker inspect 명령을 다시 사용하여 my-nginx 컨테이너의 네트워크 구성을 검사할 수 있습니다.

docker inspect my-nginx

이 명령의 출력을 검토합니다. 특히 "Networks" 섹션을 찾습니다. "Networks" 아래에 my-network만 표시되어야 합니다. 이 목록에 another-network가 없으면 컨테이너가 성공적으로 분리되었음을 확인합니다.

이 단계는 이전 작업의 확인 역할을 하며 Docker 컨테이너의 네트워크 상태를 확인하는 방법을 강화합니다.

요약

이 랩에서는 Docker 컨테이너 네트워크 연결을 관리하는 방법을 배웠습니다. 먼저 docker run --network 명령을 사용하여 사용자 지정 브리지 네트워크를 생성하고 이에 직접 연결된 컨테이너를 시작했습니다. 이는 컨테이너 생성 중에 특정 네트워크에 대한 초기 연결을 보여주었습니다.

이어서, docker network connect 명령을 사용하여 이미 실행 중인 컨테이너를 추가 네트워크에 연결하는 방법을 살펴보았습니다. 마지막으로, docker network disconnect 명령을 사용하여 컨테이너를 네트워크에서 분리하는 방법을 배우고 분리를 확인하여 생성 후 컨테이너 네트워크 멤버십을 관리하는 유연성을 보여주었습니다.