>  기사  >  운영 및 유지보수  >  도커 가상 네트워크를 사용하는 방법

도커 가상 네트워크를 사용하는 방법

PHPz
PHPz원래의
2023-04-19 09:15:54901검색

Docker는 현재 가장 널리 사용되는 컨테이너화 플랫폼 중 하나이며, 애플리케이션 배포 및 관리를 크게 단순화할 수 있습니다. 가장 중요한 기능 중 하나는 Docker 가상 네트워크로, 이는 사용자가 별도의 물리적 시스템에 여러 컨테이너를 생성하고 협업하는 동시에 우수한 네트워크 격리 및 보안을 제공하는 데 도움이 됩니다.

이 기사에서는 Docker 가상 네트워크를 사용하여 컨테이너 간 통신 및 네트워크 상호 운용성을 구축하는 방법을 소개하고 네트워크 격리 및 보안의 중요성도 소개합니다.

  1. Docker 가상 네트워크 생성 및 관리

먼저 Docker 가상 네트워크를 생성해야 합니다. 다음 명령을 사용하여 "my-network"라는 가상 네트워크를 생성할 수 있습니다.

docker network create my-network

네트워크를 생성한 후 다음 명령을 사용하여 현재 docker 가상 네트워크를 나열할 수 있습니다.

docker network ls

결과는 다음과 같습니다.

NETWORK ID          NAME                DRIVER              SCOPE
6e8c0391c9ac        bridge              bridge              local
a8a551c45849        host                host                local
d6a050011a56        my-network          bridge              local
69f86bb8f6bc        none                null                local

이제 컨테이너를 생성하고 통신하는 데 사용할 수 있는 "my-network"라는 가상 네트워크를 생성했습니다.

  1. Docker 가상 네트워크에 컨테이너 연결

다음으로 두 개의 컨테이너를 생성하고 방금 생성한 "my-network" 가상 네트워크에 연결하겠습니다. --network 매개변수를 사용하여 컨테이너를 가상 네트워크에 연결합니다. --network参数将容器连接到虚拟网络。

使用以下命令启动一个名为"webserver"的容器,并将其连接到虚拟网络:

docker run --name webserver --network my-network -p 8080:80 -d nginx

在上面的命令中,我们使用了"nginx"镜像来创建我们的容器。-p

"webserver"라는 컨테이너를 시작하고 다음 명령을 사용하여 가상 네트워크에 연결합니다.

docker run --name database --network my-network -e MYSQL_ROOT_PASSWORD=password -d mysql
위 명령에서는 "nginx" 이미지를 사용하여 컨테이너를 만들었습니다. -p 매개변수는 docker 컨테이너의 포트 "80"을 실제 머신의 포트 "8080"에 매핑합니다.

두 번째 컨테이너를 생성하고 유사한 방법을 사용하여 가상 네트워크에 연결할 수도 있습니다.

docker exec -it webserver apt-get update
docker exec -it webserver apt-get install nano
위 명령에서는 "mysql" 이미지를 사용하여 컨테이너를 생성하고 MySQL 루트 비밀번호를 설정합니다.
  1. 이제 두 개의 컨테이너를 생성하고 이를 생성한 가상 네트워크에 연결했습니다.

컨테이너 간 통신 테스트

컨테이너가 성공적으로 통신하는지 테스트하려면 "웹 서버"에서 간단한 HTML 페이지를 사용할 수 있습니다.

먼저 "웹 서버" 컨테이너로 이동하여 다음 명령을 사용하여 nano 텍스트 편집기를 설치합니다.

docker exec -it webserver nano /usr/share/nginx/html/index.html
그런 다음 nano 텍스트 편집기를 사용하여 간단한 index.html 페이지를 만듭니다.

<!DOCTYPE html>
<html>
<head>
<title>Welcome to my website</title>
</head>
<body>
<p>Hello from webserver!</p>
<?php
$servername = "database";
$username = "root";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully to database";
?>
</body>
</html>
페이지에서 다음 콘텐츠를 추가하세요:

http://127.0.0.1:8080
위 코드에서는 페이지에 텍스트 메시지를 추가하고 "데이터베이스" 컨테이너의 MySQL 데이터베이스에 연결하는 PHP 스크립트를 추가합니다.

이제 실제 컴퓨터의 웹 브라우저에서 다음 URL을 사용하여 페이지를 열 수 있습니다.

...
Version: '5.7.22'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
2019-05-22T20:02:24.809716Z 0 [Note] Event Scheduler: Loaded 0 events
Connected successfully to database
페이지에 "Hello from webserver!"와 성공적인 연결 메시지가 표시됩니다.

그동안 "데이터베이스" 컨테이너에서 "docker 로그 데이터베이스" 명령을 실행하면 다음과 같은 출력이 표시됩니다.
    rrreee
  1. 이는 두 컨테이너 간의 통신이 정상이고 테스트 페이지가 성공할 수 있음을 나타냅니다. "데이터베이스" 컨테이너의 MySQL 데이터베이스에.

네트워크 격리 및 보안

Docker 가상 네트워크의 또 다른 중요한 역할은 서로 다른 컨테이너 간에 네트워크 격리 및 보안을 제공하는 것입니다. 예를 들어, "웹 서버" 컨테이너에서 악성 코드를 실행하면 다른 컨테이너에 액세스하거나 영향을 미칠 수 없습니다.
  1. 또한 Docker 가상 네트워크를 사용하여 외부 네트워크에 대한 컨테이너 액세스를 제한할 수도 있습니다. 예를 들어, 가상 네트워크를 생성하고 컨테이너가 해당 네트워크의 다른 컨테이너하고만 통신할 수 있도록 하고 인터넷의 다른 컨테이너에 액세스할 수 없도록 하여 애플리케이션의 보안을 강화할 수 있습니다.

요약

이 글에서는 Docker 가상 네트워크를 사용하여 서로 다른 컨테이너를 연결하고 컨테이너 간 통신을 활성화하는 방법을 소개했습니다. 또한 Docker 가상 네트워크가 네트워크 격리 및 보안을 제공하는 방법도 배웠습니다. 🎜🎜가상 네트워크는 강력한 컨테이너형 애플리케이션을 구축하고 우수한 보안을 제공하는 데 사용할 수 있는 Docker의 매우 중요한 기능입니다. Docker를 사용하여 애플리케이션을 구축하는 경우 애플리케이션 보안 및 효율성을 향상시키기 위해 가상 네트워크 사용을 고려하십시오. 🎜

위 내용은 도커 가상 네트워크를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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