IRONSOFTWAREHOME

.NET 용 Iron Suite

10개의 .NET 라이브러리. 완전한 문서 슈트

IRONSECUREDOC 사용

Docker Compose 네트워크(개발자를 위한 작동 방식)

Curtis Chau
Curtis Chau
Updated: 2026년 6월 28일

Docker란 무엇인가?

Docker는 경량의 이동 가능한 컨테이너 내부에서 응용 프로그램의 배포 및 확장을 자동화하기 위해 컨테이너 기반 개념을 사용하는 오픈 소스 플랫폼입니다. 간단히 말하면, Docker 컨테이너는 모든 응용 프로그램 코드와 그 의존성을 개발자의 노트북에서 테스트 서버 또는 프로덕션 클라우드 서버까지 환경 전반에 걸쳐 하나의 단위로 묶습니다.

Docker Compose 네트워크 (개발자를 위한 작동 방식): 그림 1

컨테이너는 가상 머신(VM)과 같은 전통적인 방법으로 작동하지 않습니다.왜냐하면 호스트 시스템의 운영 체제 커널을 공유하기 때문입니다. 따라서 컨테이너는 훨씬 더 효율적이며 시작 시간이 빠릅니다. 사실, Docker 컨테이너는 개발 주기 전반에 걸쳐 일관성 있는 동작을 보장합니다.

사실, Docker 이미지는 응용 프로그램 환경을 보유한 컨테이너 설명을 위한 템플릿입니다. 이 세트에는 컨테이너 수명 주기를 관리하기 위한 툴킷도 포함되어 있습니다. 예를 들어, 다중 컨테이너로 구성된 응용 프로그램을 오케스트레이션할 수 있는 Docker Compose가 있습니다. 또한 이미지를 공유하기 위한 레지스트리인 Docker Hub가 있습니다.

Docker Compose 네트워크란?

Docker Compose 네트워크는 같은 캡슐화된 환경 내에서 Docker Compose 응용 프로그램에서 실행되는 서비스들이 서로 통신할 수 있도록 합니다. 하나 이상의 서비스를 docker-compose.yml 파일에 정의하면, Docker Compose는 기본 네트워크를 자동으로 생성하여 해당 서비스들이 호스트명으로 서비스 이름을 사용하여 서로 통신할 수 있도록 합니다. 근본적으로 사용자가 네트워크를 정의하고 네트워크가 생성된 여러 서비스를 정의할 수 있게 합니다.

기본 브리지 네트워크: docker-compose up 실행 시 컨테이너에 대한 네트워크를 정의하지 않으면, Docker는 자동으로 브리지 네트워크를 생성합니다. 모든 컨테이너는 기본 드라이버 네트워크에서 서비스 이름을 호스트명으로 하여 서로 통신할 수 있습니다.

커스텀 네트워크: 이러한 옵션을 사용하면 사용자가 하나 또는 두 개의 맞춤형 네트워크를 정의하고 사용자 정의 네트워크로 더 추가할 수 있습니다. 컨테이너 포트와 docker-compose.yml 파일 내에서 사용자 지정 네트워크를 정의할 수 있습니다. 이러한 네트워크에 서비스를 할당함으로써 컨테이너 간 통신 방식을 제어할 수 있습니다:

  • 내부 네트워크는 서비스를 다른 서비스와 격리시킵니다.
  • 다중 네트워크는 일부 서비스가 서로 통신할 수 있게 하면서 다른 서비스에는 접근을 차단합니다.

서비스 검색: 모든 서비스는 구성에서 이름과 동일한 호스트 이름을 얻습니다. 즉, 하나의 컨테이너에서 다른 서비스의 이름을 사용하여 다른 서비스를 참조할 수 있습니다. 예를 들어, 웹 서비스에서 데이터베이스 컨테이너의 IP를 참조하기 위해 db를 사용할 것입니다.

네트워크 모드: 서비스에 대해 호스트, 브리지 또는 없음 모드를 설정할 수도 있습니다. 가장 흔히 사용되는 것은 브리지로, 컨테이너 트래픽을 격리합니다.

Docker 네트워크 드라이버란 무엇인가?

Docker 네트워크 드라이버는 컨테이너 간의 연결 및 통신을 설명하며, 다른 컨테이너 및 시스템과의 연결을 설명합니다. 다양한 사용 사례가 있으며, 네트워크 드라이버는 이러한 사례에 적용될 수 있으며, 각각의 격리 수준, 연결성 및 성능을 제공합니다. 각 네트워크 드라이버를 살펴보고 그 사용 사례를 설명하겠습니다.

Docker 네트워크 드라이버의 종류

브리지 (기본값)

내부 Docker 네트워크는 단일 호스트를 기반으로 컨테이너 간의 통신을 허용합니다. 네트워크를 지정하지 않고 컨테이너를 실행하면 Docker는 기본 브리지 네트워크를 사용합니다.

# Create a custom bridge network
docker network create --driver bridge my_bridge_network

# Run containers and connect to the custom network
docker run -d --name container1 --network my_bridge_network busybox sleep 3600
docker run -d --name container2 --network my_bridge_network busybox sleep 3600
SHELL

여기서 서비스 이름은 통신에 사용될 수 있으며, 예를 들어 ping container1container2와 같습니다.

호스트

호스트 드라이버를 사용하면 컨테이너는 호스트 네트워크 스택을 직접 공유하므로 자체 맞춤형 네트워크 격리를 가져오지 않습니다.

# Run a container using the host network
docker run -d --network host nginx
SHELL

NGINX 컨테이너는 이제 호스트의 IP 및 네트워크 인터페이스를 공유하여 네트워크 격리를 우회합니다.

오버레이

여러 호스트에 걸쳐 컨테이너를 상호 연결하고 주로 Docker Swarm 또는 Kubernetes 환경에서 사용되며 물리적 또는 가상 머신을 통해 컨테이너를 안전하게 연결합니다.

# Create an overlay network for use in a Docker Swarm cluster
docker network create -d overlay my_overlay_network

# Deploy a service in the Swarm cluster
docker service create --name web --network my_overlay_network nginx
SHELL

이렇게 하면 여러 Docker 호스트에 걸쳐 확장할 수 있는 Swarm 클러스터에서 서비스를 생성합니다.

없음

이 없음 드라이버는 컨테이너의 네트워킹을 비활성화합니다. 이 컨테이너는 외부 네트워크 통신으로부터 완전히 격리됩니다.

# Run a container with no network
docker run -d --network none busybox sleep 3600
SHELL

busybox 컨테이너는 인터넷에 접근할 수 없으며 다른 컨테이너의 자체 네트워크나 외부 세계에 호출을 보낼 수 없습니다.

Macvlan

Macvlan 드라이버는 컨테이너가 네트워크에서 자체 MAC 주소를 가진 물리적 장치처럼 보이도록 하여 물리적 네트워크에 직접 접근할 수 있게 합니다.

# Create a Macvlan network
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network

# Run a container on the Macvlan network
docker run -d --network macvlan_network busybox sleep 3600
SHELL

IPvlan

IPvlan 드라이버는 Macvlan과 비슷하지만 Layer 2(MAC 주소)보다는 IP 주소 할당에 중점을 둡니다. 여러 컨테이너가 동일한 네트워크 인터페이스를 공유할 수 있습니다.

# Create an IPvlan network
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network

# Run a container on the IPvlan network
docker run -d --network ipvlan_network busybox sleep 3600
SHELL

호스트의 Layer 2 이더넷 인터페이스와 네트워크를 공유하지만 다른 IP 주소를 가집니다.

커스텀 플러그인

Docker의 커스텀 플러그인은 타사 또는 사용자 개발 네트워크 드라이버로, Docker 기본 제공 기능보다 네트워크 기능상에 더 정교한 기능을 제공합니다. 타사 Docker 플러그인은 소프트웨어 정의 네트워킹과 같은 외부 네트워킹 솔루션 프레임워크와 통합하여 보안, 확장성 및 다중 호스트 네트워킹과 같은 기능을 개선할 수 있습니다. Docker는 네트워크 플러그인에 대한 다용도 아키텍처를 제공하여 네이티브 드라이버와 동일한 방식으로 플러그인을 설치하고 사용할 수 있습니다.

IronSecureDoc

IronSecureDoc for Docker는 개발자가 컨테이너화된 애플리케이션에 안전한 문서 처리 기능을 쉽게 추가할 수 있게 합니다. Docker를 사용하면 IronSecureDoc가 포함된 ASP.NET Core 애플리케이션을 배포 및 확장을 용이하게 하는 일관된 환경 내에 캡슐화할 수 있습니다. 실행하려면, IronSecureDoc 라이브러리와 필수 설치 스크립트 또는 구성 파일로 구성된 ASP.NET Core 애플리케이션을 작성한 Dockerfile을 구축합니다.

Docker Compose 네트워크 (개발자를 위한 작동 방식): 그림 2 - IronSecureDoc

이에는 서비스 종속성, 환경 변수 및 매핑된 포트를 포함하는 docker-compose.yml 파일이 포함되어 있어, 이에 접근할 수 있도록 합니다. 따라서 문서의 보안 작업이 더욱 관리하기 쉬워져 웹 애플리케이션이 개발 또는 생산에 사용된 환경 외부에서 효율적이고 효과적으로 실행될 수 있습니다. 문서 암호화 등에서 제공되는 모든 기능을 활용하려면 Docker의 경우와 같이 IronSecureDoc 설치 및 구성이 필요합니다.

IronSecureDoc 설치 및 실행

커맨드 프롬프트 또는 열린 터미널 창에서 다음 명령어를 실행하여 IronSecureDoc Docker 이미지를 저장소에서 가져옵니다.

# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Compose 네트워크 (개발자를 위한 작동 방식): 그림 3

Docker 저장소에서 이미지를 가져온 후 다른 명령어를 사용하여 IronSecureDoc를 실행 중인 컨테이너로 시작할 수 있습니다.

# Run a container with network isolation and environment variables
docker container run --rm -p 8080:8080 \
  -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> \
  -e ENVIRONMENT=Development \
  -e HTTP_PORTS=8080 \
  ironsoftwareofficial/ironsecuredoc:latest
SHELL

위의 Docker 실행 명령어는 IronSecureDoc의 컨테이너 인스턴스를 가져올 것입니다. 브리지 네트워크는 네트워크 격리를 위해 가정됩니다. 또한, -p 8080:8080 플래그를 사용하여 http://localhost:8080를 통해 컨테이너 내부에 노출된 서비스에 외부 접근을 가능하게 합니다; 이것은 컨테이너 네트워크의 8080 포트에서 실행 중인 내부 서비스를 호스트 네트워크의 8080 포트에 노출시킵니다.

컨테이너는 기본적으로 Docker의 브리지 네트워크에서 실행되므로 포트 매핑을 통해 노출하지 않는 한 다른 컨테이너와 외부 세계로부터 자신을 격리합니다. 여기서 그렇게 합니다. 전달된 환경 변수(IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS)는 컨테이너에서 애플리케이션의 동작을 구성합니다. --rm 플래그는 컨테이너가 중지되면 제거되도록 합니다.

이 설정의 장점은 브리지 네트워크가 컨테이너를 격리하고 내부적으로 서비스를 연결하는 반면, 포트 매핑은 컨테이너의 서비스로 호스트 머신으로부터 외부 트래픽을 브리징하여 접근을 용이하게 한다는 점입니다.

Docker Compose 네트워크 (개발자를 위한 작동 방식): 그림 4

IronSecureDoc를 Docker Network Port와 함께 사용하기

IronSecureDoc의 REST API는 사용자가 문서를 설치 후 실행할 때 수정, 인증 및 암호화할 수 있도록 합니다. 자세한 단계는 여기에서 문서를 참조하십시오.

예를 들어, 문서를 암호화하려면 IronSecureDoc API에 POST 요청을 수행할 수 있습니다:

# POST a document for encryption using cURL
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

이 명령어는 자동으로 문서를 IronSecureDoc로 전송하여 적절한 방식으로 암호화합니다.

결론

Docker 네트워킹은 애플리케이션 상호작용 및 다양한 애플리케이션 요구에 맞춘 드라이버 및 구성으로 다른 애플리케이션과 외부 세계와의 의사소통을 제어하는 데 중요합니다. 기본 브리지 네트워크 구성은 IronSecureDoc 애플리케이션에 의해 예시된 대로 포트 매핑을 통해 호스트 시스템에 서비스를 노출시켜 기본적인 격리를 허용합니다. 이는 컨테이너화된 애플리케이션의 관리 및 구성을 용이하게 하여 애플리케이션의 운영 유연성과 확장성을 향상시킵니다.

IronSecureDoc는 고급 문서 처리 도구로, Docker의 컨테이너화 기능을 활용하여 빠르고 신뢰할 수 있는 애플리케이션 배포를 가능하게 합니다. 이것은 여러 환경에 대한 지원을 보장하며 Docker 네트워킹을 IronSecureDoc와 원활하게 통합하여 애플리케이션 통합을 쉽고 접근 가능하며 관리할 수 있도록 만듭니다.

결과적으로, 작업 흐름을 간소화하고 효율성을 향상하며 특히 문서를 처리할 때 운영을 향상시킵니다. 궁극적으로 이는 개발 및 배포 경험을 풍부하게 하여 현대 소프트웨어 애플리케이션에 가치 있는 솔루션이 됩니다. IronSecureDoc 라이선싱에 대한 자세한 정보는 이 페이지를 참조하십시오. Iron Software의 많은 제품 제공에 대해 더 자세히 알고 싶으면 이 링크를 따라 주십시오.

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

OR
bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.