Docker 네트워킹 소개: 워크플로, 네트워킹 기본 사항, 네트워킹 명령
게시 됨: 2020-04-30목차
소개
이 가상화 시대에 네트워크 관리자는 더 이상 라우터, LAN/WAN 구성 요소 및 스위치와 같은 기존 네트워킹 구성 요소에서만 작업하지 않습니다. 그들은 가상화 플랫폼의 네트워크 구성 요소에서 작업해야 합니다. 전체 IT 산업은 강력한 네트워킹 기술이 필수적인 컨테이너화 개념에 관심이 있습니다.
Docker는 가장 많이 사용되는 컨테이너화 소프트웨어 중 하나이므로 Docker 네트워킹 기술은 컨테이너를 구성하는 데 중요합니다. 현재 12,000개 이상의 회사에서 애플리케이션 배송에 Docker 컨테이너를 사용합니다 . 이러한 회사에는 JPorgan Chase, ThoughtWorks 및 Neudesic이 포함됩니다.
이 글에서는 도커 네트워킹 의 기초인 도커 소개에 대해 알아볼 것이다 .
먼저 Docker의 기본 사항을 이해합시다.
도커란?
Docker는 컨테이너화 개념을 도입한 소프트웨어 패키징 플랫폼입니다. 컨테이너화는 소프트웨어 애플리케이션이 라이브러리, 모듈 및 OS와 같은 모든 필수 종속성으로 포장되는 프로세스입니다. 이것은 소프트웨어를 어떤 환경에서도 쉽게 실행할 수 있도록 합니다.
이러한 소프트웨어 패키지를 Docker 컨테이너 라고 합니다. 이러한 컨테이너는 특정 환경에 대한 애플리케이션을 배포하는 데 사용됩니다. Ubuntu 컨테이너, CentOS 컨테이너, Tomcat-Ubuntu 또는 CakePHP 컨테이너일 수 있습니다.

Tomcat 서버가 설치된 환경에서 실행하기 위해 Java 응용 프로그램이 생성되었다고 가정해 보겠습니다. 개발 후 테스트를 위해 애플리케이션이 전송됩니다. 테스터는 애플리케이션을 실행하기 위해 Tomcat 서버를 다시 설정해야 합니다. 그런 다음 프로덕션 환경으로 보내지며 동일한 환경을 다시 설정해야 합니다.
그러나 이미 환경이 있는 Docker 컨테이너는 처음부터 시작하는 문제를 해결할 것입니다. 따라서 개발자, 테스터 및 프로덕션 단위 구성원은 계속해서 Tomcat 서버를 설정하지 않고도 애플리케이션을 실행할 수 있습니다.
읽기: Docker 프로젝트 아이디어 및 주제
도커 워크플로
애플리케이션 또는 프로젝트 코드는 Docker 파일 에 작성됩니다 . 이 파일에는 애플리케이션 요구 사항 및 종속성이 포함되어 있습니다. 이 파일은 나중에 파일의 코드를 실행하는 데 사용되는 Docker 이미지 를 생성합니다.
이미지에는 애플리케이션을 실행하는 데 필요한 코드, 환경 변수, 구성 파일, 런타임 및 라이브러리가 포함됩니다. 그런 다음 이미지는 Docker 이미지로 구성된 GIT 리포지토리인 Docker Hub 에 업로드됩니다 . 이러한 리포지토리에서 고유한 Docker 이미지를 가져오고 업로드할 수 있습니다.
품질 보증 팀 또는 회사의 생산 팀 구성원은 컨테이너 개발을 위한 이미지를 가져옵니다. 이러한 모든 컨테이너는 서로 격리될 수 있으므로 Docker 네트워킹 은 서로 상호 작용하는 규칙 집합입니다.
이제 Docker 에 대해 기본적으로 이해했으므로 Docker 네트워킹 에 대해 자세히 살펴보겠습니다 .
또한 읽기: 인도의 Docker 급여
도커 네트워킹 기초
Docker가 처음 설치되면 세 가지 다른 Docker 네트워크(없음, 호스트 및 브리지)가 구성됩니다. none 및 host는 Docker 스택의 중요한 구성 요소이며 제거할 수 없습니다. docker0 네트워크로 알려진 브리지 네트워크를 구성할 수 있습니다.
Docker는 많은 네트워크를 만드는 데 사용할 수 있습니다. 둘 이상의 네트워크에 컨테이너를 추가할 수 있습니다. 여러 네트워크에 연결된 컨테이너는 이러한 네트워크의 컨테이너와 연결할 수 있습니다.
Docker에서 사용되는 주요 네트워크 드라이버는 다음과 같습니다.
다리
Docker가 호스트에 생성한 개인 기본 네트워크입니다. 이 네트워크는 IP 서브넷과 게이트웨이를 자동으로 생성합니다. 이 네트워크에 속한 컨테이너는 동일한 서브넷의 일부입니다. 따라서 이 네트워크의 컨테이너는 IP 주소 지정을 통해 통신합니다.

브리지 네트워크 드라이버는 애플리케이션이 독립 실행형 컨테이너에서 실행될 때 매우 유용합니다. Docker 설치는 기본적으로 docker0을 나타냅니다. 콘솔에 다음 명령을 입력하면 Docker는 브리지 네트워크를 설명하는 JSON 개체를 반환합니다.
도커 네트워크 검사 브리지
주인
호스트 드라이버는 독립 실행형 컨테이너 에 사용됩니다 . 호스트 네트워킹 모드가 컨테이너에 사용되는 경우 Docker 호스트와 네트워크 스택 간의 격리가 제거됩니다. 컨테이너에 할당된 IP 주소가 없습니다.
예를 들어 포트 80에 바인딩하는 컨테이너가 실행되고 호스트 네트워킹이 사용됩니다. 이 경우 컨테이너의 애플리케이션은 호스트 IP 주소의 포트 80에서 사용할 수 있습니다. 이 네트워킹 모드는 컨테이너가 많은 수의 포트를 처리할 때 유용합니다.
또한 호스트 드라이버를 사용하면 동일한 단일 호스트에서 여러 웹 컨테이너를 실행할 수 있습니다.
없음
이러한 유형의 네트워크에서 컨테이너는 외부 네트워크에 액세스할 수 없으며 다른 컨테이너나 네트워크에 연결되지 않습니다. 특정 컨테이너에서 네트워킹 스택을 비활성화하려는 경우 None이 사용됩니다.
None에는 루프백 인터페이스만 있습니다. 즉, 외부 네트워크 인터페이스가 없습니다.
위에 까는 것
이것은 Swarm 클러스터의 모든 노드에 걸쳐 있는 내부 사설 네트워크를 만드는 데 사용됩니다. 도커 무리 네트워크는 도커 애플리케이션을 실행하는 가상 또는 물리적 머신 그룹입니다. 이 네트워크 드라이버는 독립 실행형 컨테이너와 Swarm 서비스 간의 통신을 허용하므로 Docker 네트워킹 에서 중요합니다.
다른 Docker 데몬의 독립 실행형 컨테이너도 이 드라이버와 상호 작용할 수 있습니다. 따라서 컨테이너에 대해 OS 수준 라우팅을 수행할 필요가 없습니다.
맥블란
이 네트워크를 사용하면 컨테이너에 MAC 주소를 할당할 수 있습니다. 이렇게 하면 물리적 장치로 나타납니다. 이 주소를 사용하여 Docker 데몬은 트래픽을 특정 라우터로 라우팅합니다. Docker 데몬은 호스트 OS에서 실행되고 호스트 OS와 상호 작용하여 다양한 활동을 수행하는 서버입니다. Macvlan 네트워크는 컨테이너 간의 통신을 단순화합니다.
Macvlan 은 물리적 네트워크에 연결될 것으로 예상되는 레거시 애플리케이션을 처리할 때 좋은 옵션입니다. Macvlan 네트워크를 설정하면 브리지 모드 또는 802.1q 트렁크 브리지 모드의 두 가지 모드가 될 수 있습니다.
네트워크 플러그인
Docker와 함께 타사 네트워크 플러그인을 사용할 수 있습니다. 이러한 플러그인은 Docker Hub에서 사용할 수 있으며 타사 공급업체를 통해 얻을 수 있습니다.
도커 네트워킹 명령
가장 일반적인 도커 네트워킹 명령은 다음과 같습니다.
Docker 네트워크 나열
이 코드는 호스트의 모든 Docker 네트워크를 나열합니다.
도커 네트워크 ls
도커 네트워크 생성
다음 명령은 컨테이너를 시작하기 전에 네트워크를 만드는 데 도움이 됩니다.
docker network create --driver 드라이버 이름 이름
여기서 drivername 은 네트워크 드라이버에 부여된 이름이고 네트워크 명령 나열
이 명령은 사용 가능한 네트워크 명령을 나열하는 데 사용됩니다.
도커 네트워크 도움말
네트워크 제거
rm 명령은 네트워크를 제거하는 데 사용할 수 있습니다.
도커 네트워크 rm mynetwork
도커 네트워크에 연결
Docker 네트워크를 생성하면 기본적으로 브리지 네트워크에 연결됩니다. 컨테이너를 실행할 때 다음 명령을 사용하여 다른 네트워크에 연결할 수 있습니다.
도커 컨테이너 실행 -it –net=mynetwork nginx
컨테이너 포트 얻기

port 명령을 사용하여 컨테이너의 포트를 가져올 수 있습니다.
도커 포트 cotainer_name/id
결론
Docker는 요즘 소프트웨어 개발의 중요한 측면입니다. 점점 더 많은 회사가 컨테이너화로 이동함에 따라 컨테이너를 격리하는 데 네트워킹이 중요합니다. 이를 통해 안전하게 함께 작동하는 웹 응용 프로그램을 개발할 수 있습니다. 이러한 네트워크는 컨테이너 간의 더 나은 통신에 도움이 됩니다.
Docker는 많은 기업이 배포 시간을 개선하고 관련 비용을 줄이는 데 도움이 되었습니다. 따라서 초보자인 경우 이 기사는 도커 네트워킹 의 기초를 둘러보는 데 유용할 것 입니다.
전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT를 제공합니다. -B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.