buruh pelabuhan berbagi jaringan dengan windows dan wadah linux

Aug 17 2020

Saya ingin menghubungkan windows dan container linux dalam jaringan yang sama.

Pertama saya membuat jaringan (Docker untuk Windows diatur ke "Windows Containers"):

docker network create --driver nat mynet

Jaringan dibuat dan docker network lsmencantumkan jaringan baru.

docker-compose.yml dari windows dan layanan linux berisi:

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

Dengan docker-compose uppenampung windows mulai dengan baik, setelah "Beralih ke Linux Containers" dan mencoba untuk memulai penampung linux, kesalahan berikut akan ditampilkan:

EROR: Jaringan mynet dinyatakan sebagai eksternal, tetapi tidak dapat ditemukan. Harap buat jaringan secara manual menggunakan docker network create mynetdan coba lagi.

Juga docker network lstidak mencantumkan jaringan lagi.

Apa cara yang benar untuk berbagi jaringan antara windows dan linux?

Jawaban

1 CharlesDesbiens Aug 17 2020 at 08:18

Mengalihkan opsi 'Switch to Linux Containers "menyebabkan Docker Anda beralih konteks bolak-balik antara linux vm yang dijalankan Docker di atasnya, dan sistem operasi windows.

Ketika Anda melakukan ini, Anda secara efektif beralih ke kumpulan sumber daya buruh pelabuhan yang berbeda yang tidak menyadari satu sama lain. Mereka menggunakan sistem operasi terpisah. Sayangnya, Anda tidak dapat melakukan apa yang Anda coba lakukan dengan compose, karena compose akan selalu berjalan pada satu Daemon, dan satu Daemon berjalan pada satu sistem operasi. Tapi Anda bisa mengatur vm linux Anda sendiri, menginstal buruh pelabuhan di atasnya, dan membuat 2 node swarm yang terdiri dari mesin windows dan VM linux Anda. Dengan cara itu Anda dapat menjalankan kontainer linux Anda di satu, kontainer windows Anda di sisi lain, dan menghubungkannya melalui jaringan.