운영 및 유지보수 리눅스 운영 및 유지 관리 Docker와 Linux: 컨테이너 간 네트워크 통신을 구현하는 방법은 무엇입니까?

Docker와 Linux: 컨테이너 간 네트워크 통신을 구현하는 방법은 무엇입니까?

Jul 28, 2023 pm 11:38 PM
docker networking container communication linux bridge

Docker 및 Linux: 컨테이너 간 네트워크 통신을 구현하는 방법은 무엇입니까?

인용문:
컨테이너 기술은 최신 애플리케이션의 개발 및 배포에 중요한 역할을 합니다. 컨테이너 기술을 사용하면 애플리케이션과 해당 종속성을 독립적인 컨테이너에 패키징할 수 있으므로 애플리케이션의 이식성과 일관성이 보장됩니다. 그러나 네트워크 통신을 활성화하기 위해 여러 컨테이너를 연결해야 하는 경우 컨테이너 간 네트워크 통신을 구성하는 것이 매우 중요합니다. 이 기사에서는 Docker와 Linux 환경에서 컨테이너 간의 네트워크 통신을 구현하는 방법을 소개합니다.

  1. Docker의 네트워크 모드
    Docker는 컨테이너 네트워크 통신을 지원하기 위해 다음과 같은 네 가지 네트워크 모드를 제공합니다.
  2. 브리지 모드(브리지): 기본 모드에서는 컨테이너가 가상 브리지를 통해 호스트 네트워크에 연결됩니다.
  3. 호스트 모드(host): 컨테이너는 네트워크 격리 없이 호스트 네트워크를 직접 사용합니다.
  4. 없음 모드: 컨테이너에는 네트워크 인터페이스가 없으며 외부 네트워크와 완전히 격리됩니다.
  5. 컨테이너 모드(컨테이너): 컨테이너는 네트워크 네임스페이스를 공유하며 다른 컨테이너에 직접 액세스할 수 있습니다.
  6. 컨테이너 간 네트워크 통신 예시
    다음으로 간단한 예시를 통해 Docker와 Linux 환경에서 컨테이너 간 네트워크 통신을 구현하는 방법을 보여드리겠습니다. 두 개의 컨테이너가 있다고 가정합니다. 하나는 웹 컨테이너이고 다른 하나는 db 컨테이너입니다. 웹 컨테이너가 db 컨테이너에서 제공하는 데이터베이스에 액세스할 수 있기를 바랍니다.

먼저 컨테이너 간 통신을 위한 네트워크를 만들어야 합니다. 다음 명령을 사용하여 my_network라는 브리지 네트워크를 생성할 수 있습니다.

$ docker network create my_network
로그인 후 복사

다음으로 웹 서비스를 제공하기 위한 웹 컨테이너를 생성하고 실행해야 합니다. 다음 명령을 사용하여 web_container라는 컨테이너를 생성하고 이를 my_network 네트워크에 연결할 수 있습니다.

$ docker run -d --name web_container --network my_network web_image
로그인 후 복사

여기서 web_image는 우리가 직접 만든 웹 컨테이너 이미지입니다.

그 다음에는 데이터베이스 서비스를 제공하기 위한 db 컨테이너를 생성하고 실행해야 합니다. 다음 명령을 사용하여 db_container라는 컨테이너를 생성하고 이를 my_network 네트워크에 연결할 수 있습니다.

$ docker run -d --name db_container --network my_network db_image
로그인 후 복사

그 중 db_image는 우리가 직접 구축한 db 컨테이너 이미지입니다.

이제 두 개의 컨테이너를 만들어 동일한 네트워크에 연결했습니다. 다음으로 웹 컨테이너가 db 컨테이너에서 제공하는 데이터베이스에 액세스할 수 있는지 확인해야 합니다.

웹 컨테이너에서는 db_container라는 이름을 사용하여 액세스할 수 있습니다. 예를 들어 웹 컨테이너의 코드에서 다음 연결 문자열을 사용하여 데이터베이스에 연결할 수 있습니다.

jdbc:mysql://db_container:3306/my_database
로그인 후 복사

이 연결 문자열에서 db_container는 db 컨테이너의 이름이고, 3306은 데이터베이스의 기본 포트 번호입니다. my_database는 데이터베이스의 이름입니다.

위 단계를 통해 웹 컨테이너와 DB 컨테이너 간의 네트워크 통신을 성공적으로 구현했습니다. 웹 컨테이너는 컨테이너 이름을 통해 db 컨테이너가 제공하는 데이터베이스 서비스에 접근할 수 있습니다.

결론:
Docker 및 Linux 환경에서는 네트워크 모드를 구성하고 네트워크를 생성하여 컨테이너 간 네트워크 통신을 구현할 수 있습니다. 네트워크 연결을 적절하게 설정함으로써 컨테이너 간의 통신 채널을 구축하여 다중 컨테이너 배포 및 애플리케이션의 분산 아키텍처를 활성화할 수 있습니다.

코드 샘플:

웹 컨테이너용 Dockerfile:

FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y apache2
EXPOSE 80
CMD ["apache2ctl", "-D", "FOREGROUND"]
로그인 후 복사

DB 컨테이너용 Dockerfile:

FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y mysql-server
EXPOSE 3306
CMD ["mysqld"]
로그인 후 복사

웹 컨테이너용 Java 코드 샘플:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
    public static void main(String[] args) {
        String url = "jdbc:mysql://db_container:3306/my_database";
        String user = "root";
        String password = "password";
        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement()) {
            String query = "SELECT * FROM my_table";
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                System.out.println(rs.getString("column1"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
로그인 후 복사

이상은 Docker와 Linux 환경에서 컨테이너 간 네트워크 통신을 구현하는 방법에 대한 것입니다. 그리고 예. 올바른 네트워크 구성 및 연결 설정을 통해 컨테이너 간에 쉽게 통신하고 보다 유연하고 확장 가능한 애플리케이션 아키텍처를 구축할 수 있습니다.

위 내용은 Docker와 Linux: 컨테이너 간 네트워크 통신을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

패턴 매칭을 위해 Linux에서 정규식 (Regex)을 어떻게 사용합니까? 패턴 매칭을 위해 Linux에서 정규식 (Regex)을 어떻게 사용합니까? Mar 17, 2025 pm 05:25 PM

이 기사는 패턴 매칭, 파일 검색 및 텍스트 조작을 위해 Linux에서 정규식 (Regex)을 사용하는 방법, 구문, 명령 및 Grep, Sed 및 Awk와 같은 도구를 자세히 설명합니다.

Linux에서 SSH에 대해 2 단계 인증 (2FA)을 구현하려면 어떻게합니까? Linux에서 SSH에 대해 2 단계 인증 (2FA)을 구현하려면 어떻게합니까? Mar 17, 2025 pm 05:31 PM

이 기사는 Google Authenticator를 사용하여 Linux에서 SSH에 대한 2 단계 인증 (2FA) 설정, 설치, 구성 및 문제 해결 단계에 대한 가이드를 제공합니다. Enhanced SEC와 같은 2FA의 보안 이점을 강조합니다.

Top, HTOP 및 VMSTAT와 같은 도구를 사용하여 Linux에서 시스템 성능을 모니터링하려면 어떻게해야합니까? Top, HTOP 및 VMSTAT와 같은 도구를 사용하여 Linux에서 시스템 성능을 모니터링하려면 어떻게해야합니까? Mar 17, 2025 pm 05:28 PM

이 기사는 Linux 시스템 성능을 모니터링하기위한 Top, HTOP 및 VMSTAT 사용에 대해 설명하고 효과적인 시스템 관리를위한 고유 한 기능 및 사용자 정의 옵션을 자세히 설명합니다.

Linux의 보안을 향상시키기 위해 Selinux 또는 Apparmor를 어떻게 구성합니까? Linux의 보안을 향상시키기 위해 Selinux 또는 Apparmor를 어떻게 구성합니까? Mar 12, 2025 pm 06:59 PM

이 기사는 필수 액세스 제어를 제공하는 Linux 커널 보안 모듈 인 Selinux와 Apparmor를 비교합니다. 접근 방식의 차이 (정책 기반 대 프로필 기반) 및 잠재적 성능 영향을 강조하는 구성을 자세히 설명합니다.

Linux 시스템을 백업하고 복원하려면 어떻게해야합니까? Linux 시스템을 백업하고 복원하려면 어떻게해야합니까? Mar 12, 2025 pm 07:01 PM

이 기사는 Linux 시스템 백업 및 복원 방법에 대해 자세히 설명합니다. 전체 시스템 이미지 백업을 증분 백업과 비교하고 최적의 백업 전략 (규칙, 여러 위치, 버전, 테스트, 보안, 회전) 및 DA에 대해 설명합니다.

Sudo를 사용하여 Linux의 사용자에게 높은 권한을 부여하는 방법은 무엇입니까? Sudo를 사용하여 Linux의 사용자에게 높은 권한을 부여하는 방법은 무엇입니까? Mar 17, 2025 pm 05:32 PM

이 기사는 Linux의 Sudo 권한을 관리하는 방법, 보안 및 보안 모범 사례를 포함하여 Linux의 Sudo 권한을 관리하는 방법을 설명합니다. 주요 초점은 /etc /sudoers를 안전하게 편집하고 액세스를 제한하는 데 중점을 둡니다. 문자 수 : 159

방화구 또는 iptables를 사용하여 Linux에서 방화벽을 어떻게 설정합니까? 방화구 또는 iptables를 사용하여 Linux에서 방화벽을 어떻게 설정합니까? Mar 12, 2025 pm 06:58 PM

이 기사는 방화구 및 iptables를 사용하여 Linux 방화벽 구성을 비교합니다. Firewalld는 영역 및 서비스 관리를위한 사용자 친화적 인 인터페이스를 제공하는 반면, iPtables는 NetFilter FRA의 명령 줄 조작을 통해 저수준 제어를 제공합니다.

패키지 관리자 (APT, YUM, DNF)를 사용하여 Linux에서 소프트웨어 패키지를 어떻게 관리합니까? 패키지 관리자 (APT, YUM, DNF)를 사용하여 Linux에서 소프트웨어 패키지를 어떻게 관리합니까? Mar 17, 2025 pm 05:26 PM

기사는 APT, YUM 및 DNF를 사용하여 Linux의 소프트웨어 패키지 관리, 설치, 업데이트 및 제거를 다루는 것에 대해 설명합니다. 다양한 분포에 대한 기능과 적합성을 비교합니다.

See all articles