docker chia sẻ mạng với các cửa sổ và vùng chứa linux

Aug 17 2020

Tôi muốn kết nối một cửa sổ và một vùng chứa linux trong cùng một mạng.

Đầu tiên, tôi tạo một mạng (Docker cho Windows được đặt thành "Windows Containers"):

docker network create --driver nat mynet

Mạng được tạo và docker network lsliệt kê mạng mới.

docker-compost.yml của windows và dịch vụ linux chứa:

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

Với docker-compose upvùng chứa windows bắt đầu tốt, sau khi "Chuyển sang vùng chứa Linux" và cố gắng khởi động vùng chứa linux, lỗi sau sẽ được hiển thị:

LỖI: Mạng mynet được khai báo là bên ngoài, nhưng không thể tìm thấy. Vui lòng tạo mạng theo cách thủ công bằng cách sử dụng docker network create mynetvà thử lại.

Cũng docker network lskhông liệt kê mạng nữa.

Cách chính xác để chia sẻ mạng giữa windows và linux là gì?

Trả lời

1 CharlesDesbiens Aug 17 2020 at 08:18

Việc chuyển đổi tùy chọn 'Chuyển sang Vùng chứa Linux' khiến Docker của bạn chuyển đổi ngữ cảnh qua lại giữa vm linux mà Docker chạy trên đầu và hệ điều hành windows.

Khi bạn làm điều này, hiệu quả là bạn đang chuyển sang một nhóm tài nguyên docker khác mà chúng không nhận biết được nhau. Chúng nằm trên các hệ điều hành riêng biệt. Thật không may, bạn không thể làm những gì bạn đang cố gắng làm với tính năng soạn thư, vì tính năng soạn thư sẽ luôn chạy trên một Daemon duy nhất và một Daemon duy nhất chạy trên một hệ điều hành duy nhất. Nhưng bạn có thể thiết lập một vm linux của riêng mình, cài đặt docker trên đó và tạo một nhóm 2 nút bao gồm máy tính cửa sổ và máy ảo Linux của bạn. Bằng cách đó, bạn có thể chạy các bộ chứa linux của mình trên một bộ chứa, trên bộ chứa cửa sổ của bạn trên một bộ chứa khác và kết nối chúng qua mạng.