네트워크 드라이버 없음 | 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 기사의 네 번째 편입니다.
다음은 본 블로그의 주제입니다.
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
을 실행하고 -it
와 exec
함께 사용할 수 있습니다.docker exec -it app2 sh
케이스를 종료하려면 ctrl+d
또는 control+d
를 사용하십시오.게임을 마친 후에 우리는 다음과 같은 방법으로 용기를 청소할 수 있다.
docker rm -f app1 app2
none
네트워크 드라이버는 언제 사용합니까? -이 가능하다, ~할 수 있다,...용기에 접촉한 몇 년 동안 개인적으로 생산 과정에서 드라이버를 대량으로 사용하지 않았지만, 엄격한 네트워크 격리가 필요한 경우에도 여전히 유용할 수 있다.
나는 두 가지 리키 용례를 생각해 낼 수 있다.
파일 작업만 수행하는 네트워크 격리 응용 프로그램 실행
이것은 mounting volumes 용기에 가서 완성할 수 있으며, 용기는 특정한 시간 간격으로 작업을 실행하거나 파일 변경 이벤트를 검사해서 완성할 수 있다.예를 들어 용기를 사용하여 데이터베이스 백업, 처리 로그 파일 등을 생성한다.
네트워크 격리가 필요한 일회성 명령 실행
안전하고 네트워크가 격리된 환경에서 로그를 계산하고 인쇄해야 할 때가 있습니다.예를 들어 생성된 공작물 파일을 내보내는ci/cd 작업을 실행하거나 악성 소프트웨어를 포함하는 의심스러운 스크립트를 테스트할 수 있습니다.
none
도 사용자 정의 네트워크 드라이버와 함께 사용할 수 있습니다.너는 내가 빠뜨린 다른 중요한 용례를 아니?여기에 추가하고 싶으니까 알려주세요.
결론
이 블로그에서, 우리는 docker의
none
네트워크 드라이버가 무엇인지, 어떻게 사용하는지, 그리고 가능한 용례를 이해했다.네트워크 격리를 사용하면
none
드라이버가 실행 프로세스에 안전한 환경을 제공합니다.그러나 그것도 그것의 가용성을 제한했다.다음 블로그에서는
none
드라이버를 살펴보겠습니다. 이 드라이버는 네 개의 드라이버 중 가장 좋은 네트워크 성능을 제공합니다!⚡️지금까지 감사합니다!👏
다음에 봐요.
그 전에...
대담하게, 끊임없이 공부해라.
하지만 가장 중요한 건,
기술적 배려!
Reference
이 문제에 관하여(네트워크 드라이버 없음 | Docker의 네트워크 #4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alubhorta/the-none-network-driver-networking-in-docker-4-4m3o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)