Docker는 Windows 및 Linux 컨테이너와 네트워크를 공유합니다.

Aug 17 2020

동일한 네트워크 내에서 Windows와 Linux 컨테이너를 연결하고 싶습니다.

먼저 네트워크를 만듭니다 (Windows 용 Docker는 "Windows 컨테이너"로 설정 됨).

docker network create --driver nat mynet

네트워크가 생성되고 docker network ls새 네트워크가 나열됩니다.

windows 및 linux 서비스의 docker-compose.yml 에는 다음이 포함됩니다.

version: "3"
services:
  ...
    networks:
      mynet: {}
networks:
  mynet:
    external: true

함께 docker-compose up창문 컨테이너는 "리눅스 컨테이너로 전환"을 다음과 같은 오류가 표시되는 리눅스 컨테이너를 시작하려고 후 벌금을 시작합니다

오류 : 네트워크 mynet이 외부로 선언되었지만 찾을 수 없습니다. 을 사용하여 수동으로 네트워크를 만들고 docker network create mynet다시 시도하십시오.

또한 docker network ls더 이상 네트워크를 나열하지 않습니다.

Windows와 Linux간에 네트워크를 공유하는 올바른 방법은 무엇입니까?

답변

1 CharlesDesbiens Aug 17 2020 at 08:18

'Switch to Linux Containers'옵션을 토글하면 Docker가 Docker가 실행되는 Linux VM과 Windows 운영 체제간에 컨텍스트를 앞뒤로 전환합니다.

이렇게하면 서로를 인식하지 못하는 다른 Docker 리소스 집합으로 효과적으로 전환하는 것입니다. 별도의 운영 체제에 있습니다. 불행히도 compose는 항상 단일 데몬에서 실행되고 단일 데몬은 단일 운영 체제에서 실행되므로 compose로 수행하려는 작업을 수행 할 수 없습니다. 그러나 자신의 Linux VM을 설정하고 Docker를 설치하고 Windows 시스템과 Linux VM으로 구성된 2 노드 떼를 만들 수 있습니다. 이렇게하면 한 곳에서는 리눅스 컨테이너를, 다른 한 곳에서는 윈도우 컨테이너를 실행하고 네트워크를 통해 연결할 수 있습니다.