Cloud/Docker

Docker) Docker Network 실습해보기

Adım Kim 2022. 10. 6. 00:56
실습 환경 : AWS console (2022/10), Visual Studio Code
실습 목적 : Docker Network의 명령어와 bridge, host, none network을 실습해본다.

Docker Network 명령어


1. Docker Network 목록 (ls)

docker network ls


2. Docker Network 생성 (create)
    -  -d 옵션을 지정하지 않으면 default 상태인 bridge network로 설정된다.

docker network create -d bridge my-net
docker network create my-net2


3. Docker Network 삭제 (rm)

docker network rm my-net my-net2


4. Docker Network 상세정보 (inspect)

docker network inspect bridge

    -  pipe grep 로 container에 할당된 IP Address를 확인할 수 있다.

docker inspect server | grep IPAddress
docker inspect server2 | grep IPAddress

    -  exec 명령으로 container에서 IP Address를 확인할 수 있다.

docker exec server ifconfig eth0


5. bridge network 조회 명령
    -  명령 사용을 위한 패키지 설치

sudo apt install bridge-utils

    - bridge network 조회

brctl show

    -  기본 docker 제공 network를 사용하지 않고 직접 생성하여 적용한 경우
        다른 게이트웨이 구성을 갖게된다.

    - 기본 제공 network 게이트웨이와 새로생성한 network 게이트웨이는 서로 다르다.



Bridge Network로 container 생성해보기


1. container 생성
docker run -d -p 80:80 --name webserver nginx​

2. bridge network가 외부로 연결 가능한지 확인

sudo netstat -nlp | grep 80

    -  host IP와 포트번호는 bridge network로 연결된 container의 IP와 포트번호로 변환하여
       외부망으로 보낸다.
    -  이때 사용되는 서비스가 NAPT (Network Address Port Translation) 다.

ps -ef | grep <PID> | grep -v grep


Host Network로 container 생성해보기


1. container 생성 (--net host 옵션 추가)

docker run -d --net host --name webserver2 nginx

2. 포트 포워딩을 하지 않아도 외부접속이 가능하다.



None network로 container 생성해보기


container에 -p 옵션을 사용해도 --net none 옵션을 사용하면 포트포워딩이 적용되지 않는다.
docker run -d --net none -p 80:80 --name webserver2 nginx