ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker) Docker Network 실습해보기
    Cloud/Docker 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


    댓글

Designed by Tistory.