Docker는 현재 가장 널리 사용되는 컨테이너화 플랫폼 중 하나이며, 애플리케이션 배포 및 관리를 크게 단순화할 수 있습니다. 가장 중요한 기능 중 하나는 Docker 가상 네트워크로, 이는 사용자가 별도의 물리적 시스템에 여러 컨테이너를 생성하고 협업하는 동시에 우수한 네트워크 격리 및 보안을 제공하는 데 도움이 됩니다.
이 기사에서는 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"라는 가상 네트워크를 생성했습니다.
다음으로 두 개의 컨테이너를 생성하고 방금 생성한 "my-network" 가상 네트워크에 연결하겠습니다. --network
매개변수를 사용하여 컨테이너를 가상 네트워크에 연결합니다. --network
参数将容器连接到虚拟网络。
使用以下命令启动一个名为"webserver"的容器,并将其连接到虚拟网络:
docker run --name webserver --network my-network -p 8080:80 -d nginx
在上面的命令中,我们使用了"nginx"镜像来创建我们的容器。-p
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 루트 비밀번호를 설정합니다.
컨테이너 간 통신 테스트
컨테이너가 성공적으로 통신하는지 테스트하려면 "웹 서버"에서 간단한 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 로그 데이터베이스" 명령을 실행하면 다음과 같은 출력이 표시됩니다.
네트워크 격리 및 보안
Docker 가상 네트워크의 또 다른 중요한 역할은 서로 다른 컨테이너 간에 네트워크 격리 및 보안을 제공하는 것입니다. 예를 들어, "웹 서버" 컨테이너에서 악성 코드를 실행하면 다른 컨테이너에 액세스하거나 영향을 미칠 수 없습니다.요약
이 글에서는 Docker 가상 네트워크를 사용하여 서로 다른 컨테이너를 연결하고 컨테이너 간 통신을 활성화하는 방법을 소개했습니다. 또한 Docker 가상 네트워크가 네트워크 격리 및 보안을 제공하는 방법도 배웠습니다. 🎜🎜가상 네트워크는 강력한 컨테이너형 애플리케이션을 구축하고 우수한 보안을 제공하는 데 사용할 수 있는 Docker의 매우 중요한 기능입니다. Docker를 사용하여 애플리케이션을 구축하는 경우 애플리케이션 보안 및 효율성을 향상시키기 위해 가상 네트워크 사용을 고려하십시오. 🎜위 내용은 도커 가상 네트워크를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!