0Pricing
DevOps Bootcamp · 강의

컨테이너 네트워킹 기초

Docker의 기본 네트워킹과 브리지 네트워크를 이해하고 컨테이너가 서로를 찾는 방식을 학습합니다.

컨테이너 네트워킹 기초은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

container 네트워킹이 필요한 이유

container는 설계상 격리되어 있어 보안과 이식성 측면에서 유리합니다. 그러나 애플리케이션이 유용하게 작동하려면 서로 또는 외부 세계와 통신해야 하는 경우가 많습니다.

이때 도커 네트워킹이 사용됩니다! 도커 네트워킹을 통해 container가 안전하고 효율적으로 통신할 수 있습니다.

컨테이너 네트워킹 기초 — 일러스트레이션 1

도커의 기본 브리지 네트워크

네트워크를 지정하지 않고 container를 실행하면 도커는 자동으로 기본 브리지 네트워크에 연결합니다. 이 네트워크의 이름은 bridge입니다.

이 네트워크의 container는 IP 주소를 사용하여 서로 통신할 수 있으며 인터넷에도 접속할 수 있습니다.

도커 네트워크 확인

시스템에서 사용할 수 있는 모든 도커 네트워크를 쉽게 확인할 수 있습니다. docker network ls 명령은 네트워크를 나열하고, docker network inspect는 특정 네트워크의 자세한 구성을 보여 줍니다.

네트워크를 나열해 보십시오.

docker network ls

container IP 주소

브리지 네트워크(기본 네트워크 또는 사용자 정의 네트워크)에 연결된 각 container에는 도커의 내부 DNS 서버가 고유한 IP 주소를 할당합니다.

이 IP 주소를 사용하면 같은 네트워크의 다른 container가 해당 container에 연결할 수 있습니다. container의 IP를 확인해 보겠습니다.

docker run --rm -it alpine ip a

기본 브리지에서의 통신

기본 bridge 네트워크에서는 할당된 IP 주소를 사용하여 container끼리 통신할 수 있습니다. 그러나 IP 주소는 변경될 수 있으므로 동적인 애플리케이션에서는 이 방법의 신뢰성이 떨어질 수 있습니다.

이름으로 container를 더 쉽게 검색하고 통신하려면 사용자 정의 브리지 네트워크를 사용하는 것이 현대적이며 권장되는 방식입니다.

사용자 정의 브리지 네트워크

사용자 정의 브리지 네트워크는 기본 브리지보다 다음과 같은 중요한 이점을 제공합니다.

  • 자동 DNS 확인: 같은 사용자 정의 네트워크의 container는 서비스 이름(container 이름)으로 서로를 찾을 수 있습니다.
  • 향상된 격리: 애플리케이션을 더 효과적으로 격리합니다.
  • 높은 구성 가능성: 네트워크 설정을 더 세밀하게 제어할 수 있습니다.

데모: 이름으로 통신하기

사용자 지정 네트워크를 만들고 그 위에서 Nginx 웹 서버를 실행한 다음, 다른 container를 사용하여 이름으로 Nginx 서버에 접속해 보겠습니다. 정말 간단합니다!

docker network create my-app-net
docker run -d --name webserver --network my-app-net nginx
docker run --rm --network my-app-net alpine sh -c "apk add curl && curl -s http://webserver"
docker rm -f webserver
docker network rm my-app-net

호스트에 포트 노출

호스트 컴퓨터나 외부 네트워크에서 container의 서비스에 접근하려면 -p 또는 --publish 플래그를 사용하여 해당 포트를 '게시'하거나 '연결'해야 합니다.

예를 들어 -p 8080:80은 호스트의 8080번 포트를 container의 80번 포트에 연결합니다.

docker run -d --name my-webserver -p 8080:80 nginx
# To check, open http://localhost:8080 in your browser
# Then, clean up the container:
docker rm -f my-webserver

기타 네트워크 드라이버

도커는 브리지 네트워크 외에도 특정 용도에 맞는 다른 네트워크 드라이버를 제공합니다.

  • 호스트: container가 호스트의 네트워크 스택을 공유하므로 격리 기능을 잃습니다.
  • 없음: container에 네트워크 인터페이스가 없습니다.
  • 오버레이: Docker Swarm에서 사용되며 서로 다른 호스트의 여러 도커 데몬 간 통신을 지원합니다.

각 드라이버는 서로 다른 배포 상황에서 고유한 목적을 수행합니다.

네트워킹 도전 과제

도커의 기본 bridge 네트워크와 사용자 정의 브리지 네트워크에 대한 다음 설명 중 TRUE인 것은 무엇입니까?

복습: 네트워킹 기초

도커 네트워킹의 핵심 내용을 살펴보았습니다.

  • 기본 bridge 네트워크에서는 container가 IP를 사용하여 통신할 수 있습니다.
  • 사용자 정의 브리지 네트워크는 이름을 통한 자동 DNS 확인과 향상된 격리를 제공하므로 권장됩니다.
  • container끼리 통신하게 하는 방법과 container의 포트를 호스트에 노출하는 방법을 배웠습니다.
  • host 및 overlay와 같은 다른 네트워크 드라이버도 간단히 살펴보았습니다.

서로 연결된 container 애플리케이션을 구축하려면 네트워킹을 이해하는 것이 매우 중요합니다. 다음에는 도커 볼륨을 사용하여 영구 데이터를 관리하는 방법을 살펴보겠습니다!

자주 묻는 질문

“컨테이너 네트워킹 기초” 강의는 무료인가요?

네 — “컨테이너 네트워킹 기초” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“컨테이너 네트워킹 기초”에서 뭘 배우나요?

Docker의 기본 네트워킹과 브리지 네트워크를 이해하고 컨테이너가 서로를 찾는 방식을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“컨테이너 네트워킹 기초” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 컨테이너 네트워킹 기초
  2. 영속성을 위한 Docker 볼륨
  3. 바인드 마운트 및 tmpfs 마운트
  4. 사용자 정의 브리지 네트워크와 서비스 검색
← DevOps Bootcamp(으)로 돌아가기