Network 명령어
#docker network ls
#docker network create
#docker network connect
#docker network disconnect
#docker networkinspect
#docker network rm
#brctl show
docker network ls
- 도커 네트워크 목록 표시
옵션
-f, --filter=[ ] : 출력을 필터링한다.
driver : 드라이버 지정
id : 네트워크 아이디
label : 네트워크에 설정된 라벨 (label= 또는 label==로 지정한다
name : 네트워크명
scope : 네트워크의 스코프 (swarm, global,local)
type : 네트워크의 타입 (사용자 정의 네트워크 custom/정의완료 네트워크 builtin)
--no-trunc : 상세 정보를 출력한다
--quiet, -q : 네트워크 id만 표시
Ex)
ㆍ 9e2939a3e54e : bridge - docker0 가상 브릿지에 연결할 때 사용한다.
- 가상 브릿지를 추가하면 이러한 bridge Driver로 생성된다.
ㆍcb84e2a80ad9 : host - 호스트 OS의 IP 대역과 동일하게 할 때 사용한다.
ㆍebc9705adcd6 : none - 사용하지 않음.
docker network create
- docker netework create [옵션] [이름]
- 사용자 정의의 도커 네트워크를 생성한다.
- 네트워크 생성 시 도커 네트워크 driver 또는 외부 네트워크 driver 플러그인을 사용해야 한다.
- 이러한 생성된 네트워크에 여러 도커 컨테이너가 연결되어 통신을 하게 된다.
- 이러한 네트워크에 컨테이너가 연결되면, 컨테이너는 ip뿐만 아니라 컨테이너명 또는 컨테이너 ID로도 통신(ping 등)이 가능하다.
- 생성된 네트워크는 컨테이너 생성시 --net 옵션으로 해당 네트워크를 컨테이너에 추가할 수 있다.
- driver 중에서, 오버레이 네트워크나 커스텀 플러그인을 사용하면, 멀티 호스트에 대한 연결을 할 수 있다. (즉, 도커 서버가 여러 대라는 의미 – 도커 스웜, 쿠버네티스 등 오스트레이션 툴에서 사용됨)
- 컨테이너가 동일한 멀티호스트 네트워크에 연결되어 있으면 이 네트워크를 통해서 서로 통신이 가능하다.
옵션
--driver, -d : 네트워크 브리지 또는 오버레이(기본값은 bridge) - overlay, bridge 두 가지.
또한 커스텀 네트워크 드라이버도 사용 가능.
--ip-range : 컨테이너에 할당하는 ip 주소의 범위를 지정
--subnet : 서브넷을 CIDR형식으로 지정
--ipv6 ipv6 : 네트워크를 유효화할지 말지(true/false)
-label : 네트워크에 설정하는 라벨.
docker network connect
- 도커 컨테이너를 도커 네트워크에 연결할 때 사용
- docker network connect [옵션] [네트워크] [컨테이너]
- 생성할 때가 아닌, 이미 생성된 컨테이너에 특정 네트워크를 추가하는 것
- 연결 후에는 해당 컨테이너 내부에 새로운 네트워크 장치가 생기며, 동일한 네트워크상에 있는 다른 컨테이너와 통신이 가능해진다.
- docker container inspect 컨테이너명에서 web-network 항목에서 정보 확인 가능.
옵션
--ip : ipv4주소
--ip6 : ipv6주소
--alias : 알리아스명
--link : 다른 컨테이너에 대한 링크
Ex)
docker network connect web-network webfront (webfront라는 컨테이너를 web-network라는 네트워크에 연결)
docker network disconnect
- 도커 컨테이너안에 연결된 특정 네트워크를 해제한다.
- docker network disconnect 옵션 네트워크 컨테이너
docker network inspect
- 네트워크의 상세정보 보기
- docker network inspect [옵션] [네트워크명]
- 네트워크 드라이버, 서브넷, 게이트웨이 등등의 정보가 나오며,
- Container 부분 아래에는 해당 네트워크에 연결된 컨테이너들의 정보가 나온다.
docker network rm
- 생성한 도커 네트워크를 삭제한다.
- docker network rm 옵션 네트워크명
- 네트워크를 삭제하려면, 이 네트워크에 연결된 모든 컨테이너와의 연결을 해제해야 한다. (disconnect 명령 사용)
brctl show
- 브릿지 확인하는 명령어. 따로 설치해야 한다.
- 설치 : 우분투 apt-get -y install bridge-utils
- 설치 : 레드햇 yum install bridge-utils
도커 네트워크 연결 연습
* 새로운 브릿지 네트워크를 생성하고 생성한 네트워크를 사용하여 컨테이너 생성하기
1. 브릿지 네트워크 새로 생성
설정 없이 기본값으로 만들기
#docker network create -d bridge noset-network
상세 설정하여 만들기
#docker network create --driver bridge --subnet 172.100.1.0/24 --ip-range 172.100.1.0/24 --gateway=172.100.1.1 set-network
2. 생성 후 NETWORK ID 확인
3. ip a 명령으로 생성된 정보를 확인할 때 위의 NETWORK ID로 해당 도커 네트워크 장치를 확인할 수 있다.
4. 설정된 상세 정보를 확인한다.
5. 컨테이너 생성
#docker container run --net=set-network -it centos
* 컨테이너에 네트워크 장치 추가하기
컨테이너를 생성하면 네트워크가 eth0 하나가 추가되는데, 거기에 더 추가할 수 있다.
1. 컨테이너 생성 및 네트워크 확인
#docker run -it --name=add_network centos bash
2. 새로운 도커 브릿지 네트워크 생성
#docker network create --driver=bridge second-network
3. connect 명령으로 새로 만든 브릿지 네트워크를 추가한다.
#docker network connect second-network add_network
4. attach로 컨테이너로 들어간 후 확인해본다.
#docker attach add_network
5. 추가된 네트워크 삭제 하기.
- 컨테이너에 특정 네트워크가 추가된 상태에서, 해당 네트워크를 삭제하려고 하면 에러가 발생한다.
- 따라서 컨테이너를 중지하던지 연결을 해제해 주어야 한다.
- 이 작업은 컨테이너 온라인 중 가능하다. 명령을 치면 바로 작동된다. ->테스트해볼 것
- 작업 후 컨테이너로 들어가서 다시 확인해보면 해당 네트워크 장치가 사라진 것을 확인할 수 있다.
#docker network disconnect second-network add_network
'IT Technology > Cloud' 카테고리의 다른 글
Docker 중요 명령어 (docker run) 운영체제, 소프트웨어 컨테이너 (0) | 2021.04.12 |
---|---|
Docker 기본명령어(컨테이너 실행, 조작 명령) (0) | 2021.03.25 |
Docker Hub Login / Login permission denied 해결방법 (0) | 2021.03.10 |
도커 레지스트리, 도커 허브 란? Docker Registry, Docker Hub ? (0) | 2021.03.05 |
클라우드란? Cloud? (0) | 2021.03.04 |