네트워크 드라이버 없음 | Docker의 네트워크 #4

Learn what the None driver is, how it enables network isolation, how to use it, and possible use cases


비디오 링크:
Docker의 none 네트워크 드라이버는 무엇입니까? 안전하고 네트워크 격리된 용기를 어떻게 실행합니까?
이 블로그는 가능한 한 이 문제에 간단하게 대답할 것이다.

소개하다.
이 블로그는 Docker Networking 기사의 네 번째 편입니다.
  • blog #1 - Why is Networking important in Docker?
  • blog #2 - Basics of Networking
  • blog #3 - Docker Network Drivers Overview
  • Docker에 대한 기초 지식을 더 알고 싶다면 Docker Made Easy 시리즈를 보시는 것을 권장합니다.
    다음은 본 블로그의 주제입니다.
  • 네트워크 드라이버란 무엇입니까?
  • 어떻게 사용합니까?
  • 언제 사용합니까? -가능한 용례
  • 빠른 복습부터 시작합시다. 네트워크 드라이버는 무엇입니까?

    Network drivers enable us to easily use multiple types of networks for containers and hide the complexity required for network implementations.


    그래서...
    none 네트워크 드라이버란 무엇입니까?

    The none driver simply disables networking for a container, making it isolated from other containers.



    컨테이너에서는 이름none에 매핑된 IP 주소127.0.0.1를 사용하여 루프백 인터페이스만 생성하여 프로세스 간 통신을 활성화합니다.
    그러나 localhost 등 다른 네트워크 인터페이스가 부족하다는 것은 외부 네트워크와 외부 네트워크를 연결할 수 없다는 것을 의미한다.
    이것은 eth0 네트워크 드라이버를 매우 안전하게 한다.그러나 우리는 보통 용기 간의 통신을 원하기 때문에 그것의 가용성을 제한한다.
    잠시 후에 우리는 none의 가능한 용례를 소개할 것이다.
    이제 우리 공부합시다...
    none 네트워크 드라이버는 어떻게 사용합니까?
    우선, none 이라는 sh 리눅스 용기에서 네트워크를 지정하지 않고 상호작용 셸 (alpine 을 실행할 것입니다.
    docker run -it --name app1 alpine sh
    
    주의: app1 로고는 터미널의 입력을 용기의 입력에 연결하여 용기에서 실행되는 셸에 직접 접근할 수 있도록 합니다.
    드라이버에 대한 설명이 없으면 Docker는 기본-it 네트워크 드라이버를 사용합니다. 다음 게시물에서 더 많은 것을 알 수 있습니다.
    그러나 주의해야 할 것은 이 용기는 인터넷에 접근할 수 있다는 것이다.
    우리는 핑과 구글 같은 사이트를 통해 이 점을 검사할 수 있다.일반 도메인 이름 형식:
    ping google.com
    
    또는 apk 업데이트 명령을 실행하여 다음을 수행합니다.
    apk update
    
    그것들은 반드시 효과가 있을 것이다.
    다음과 같은 방법으로 네트워크 인터페이스와 IP 주소를 확인할 수 있습니다.
    ip addr
    
    이것은 모든 네트워크 인터페이스의 상세한 설정을 보여 줍니다.
    관심 있는 두 개의 주요 인터페이스는 루프백bridge 주소와 이더리움 인터페이스127.0.0.1 또는 유사)이다.루프백은 용기 내의 프로세스가 서로 통신할 수 있도록 하고 IP/eth0 주소 내의 이더넷 인터페이스는 용기를 네트워크에 연결한다.
    주의: 일부 시스템에서는 추가 터널 인터페이스(예를 들어 inet가 나타날 수 있습니다.우리는 지금 그것들을 소홀히 할 수 있다.
    또한 게이트웨이에 대한 기본 라우팅이 있는 라우팅 테이블이 있는지 확인할 수도 있습니다.
    route
    
    이 모든 것은 네트워크 연결의 존재를 확인하는 방식의 하나다.만약 네가 모든 세부 사항을 이해하지 못한다면 걱정하지 마라.
    네.
    이제 tunl0 드라이버가 달린 용기의 행동을 살펴봅시다.
    이전과 비슷한 용기를 실행할 새terminal 옵션/창을 엽니다.이번에 우리는 네트워크를 none로 지정하고 그것을 none라고 명명할 것이다.
    docker run -it --name app2 --network none alpine sh
    
    현재 인터넷 접근을 시도하면 실패할 것입니다. 예를 들어 ping 구글 URL:
    ping google.com
    
    또는 apk 업데이트
    apk update
    
    만약 우리가 pingapp2을 시도한다면, 그것은 의외로 일할 것이다.
    ping localhost
    
    루프백 인터페이스가 있기 때문에 다음을 볼 수 있습니다.
    ip addr
    
    그러나 이더넷 인터페이스가 없다는 것을 알 수 있습니다.
    그리고 노선이 없다.
    route
    
    따라서 외부접촉localhost이든 외부접촉app2이든 상관없다.app2에 연결할 수 있는 유일한 방법은 docker exec 명령을 사용하는 것입니다. 이 명령은 실행 중인 용기에서 명령을 실행하는 데 사용됩니다.
    세 번째 터미널 탭/창을 열고 다음을 실행합니다.
    docker exec app2 ip addr
    
    이것은 우리가 이전에 보았던 app2 인터페이스와 IP 주소 목록을 보여 줍니다.
    다른 대화식 세션을 시작하려면 다른 셸 sh 을 실행하고 -itexec 함께 사용할 수 있습니다.
    docker exec -it app2 sh
    
    케이스를 종료하려면 ctrl+d 또는 control+d를 사용하십시오.
    게임을 마친 후에 우리는 다음과 같은 방법으로 용기를 청소할 수 있다.
    docker rm -f app1 app2
    
    none 네트워크 드라이버는 언제 사용합니까? -이 가능하다, ~할 수 있다,...
    용기에 접촉한 몇 년 동안 개인적으로 생산 과정에서 드라이버를 대량으로 사용하지 않았지만, 엄격한 네트워크 격리가 필요한 경우에도 여전히 유용할 수 있다.
    나는 두 가지 리키 용례를 생각해 낼 수 있다.

  • 파일 작업만 수행하는 네트워크 격리 응용 프로그램 실행
    이것은 mounting volumes 용기에 가서 완성할 수 있으며, 용기는 특정한 시간 간격으로 작업을 실행하거나 파일 변경 이벤트를 검사해서 완성할 수 있다.예를 들어 용기를 사용하여 데이터베이스 백업, 처리 로그 파일 등을 생성한다.

  • 네트워크 격리가 필요한 일회성 명령 실행
    안전하고 네트워크가 격리된 환경에서 로그를 계산하고 인쇄해야 할 때가 있습니다.예를 들어 생성된 공작물 파일을 내보내는ci/cd 작업을 실행하거나 악성 소프트웨어를 포함하는 의심스러운 스크립트를 테스트할 수 있습니다.
  • 문서에 따라none도 사용자 정의 네트워크 드라이버와 함께 사용할 수 있습니다.
    너는 내가 빠뜨린 다른 중요한 용례를 아니?여기에 추가하고 싶으니까 알려주세요.

    결론
    이 블로그에서, 우리는 docker의 none 네트워크 드라이버가 무엇인지, 어떻게 사용하는지, 그리고 가능한 용례를 이해했다.
    네트워크 격리를 사용하면 none 드라이버가 실행 프로세스에 안전한 환경을 제공합니다.그러나 그것도 그것의 가용성을 제한했다.
    다음 블로그에서는 none 드라이버를 살펴보겠습니다. 이 드라이버는 네 개의 드라이버 중 가장 좋은 네트워크 성능을 제공합니다!⚡️
    지금까지 감사합니다!👏
    다음에 봐요.
    그 전에...
    대담하게, 끊임없이 공부해라.
    하지만 가장 중요한 건,
    기술적 배려!

    좋은 웹페이지 즐겨찾기