Karena masalah dengan captive portal dan rentang IP Docker default, saya mencoba membuat Docker menggunakan rentang 198.18.0.0, bukan 172.17.0.0, yang berbenturan dengan captive portal yang digunakan di kereta tempat saya tinggal.
Berikut the docs, Saya buat /etc/docker/daemon.json, dan masukkan yang berikut ini ke dalamnya:
{ "bip":"198.18.0.0/16"}
Ini berfungsi untuk docker0, tetapi tampaknya tidak memengaruhi jaringan lain mana pun, dan menggunakan docker compose, jaringan pertama yang dibuat adalah 172.17.0.0, yang membuat ulang bentrokan.
Apa yang dapat saya lakukan untuk mengubah subnet default semua jaringan docker (lebih disukai tanpa harus menyatakan rentang IP khusus saya di setiap file penulisan)?
Ada tiga tempat docker akan menghasilkan subnet jaringan.
Jembatan default
Jaringan jembatan buatan pengguna
Mode Swarm menghasilkan jaringan overlay
Untuk jembatan default (disebut "jembatan"), Anda dapat menentukan BIP (saya yakin itu IP Jembatan; pastikan itu adalah IP host, bukan IP jaringan) dalam daemon.json file. Dan untuk jaringan jembatan yang dibuat pengguna, Anda dapat menentukan kumpulan subnet untuk dipilih (dengan asumsi pengguna tidak menentukan subnet secara manual). Untuk kedua, Anda /etc/docker/daemon.json akan terlihat seperti:
Setiap pengaturan kumpulan alamat di atas mendefinisikan rentang CIDR dan ukuran subnet yang akan dialokasikan dari rentang itu. Jadi di atas mendefinisikan dua rentang kelas B yang dialokasikan sebagai jaringan kelas C (/24). Anda memerlukan setidaknya 18.06 untuk kumpulan alamat default. Anda perlu memuat ulang daemon docker agar perubahan ini diterapkan (systemctl reload docker). Dan perubahan ini hanya akan memodifikasi jaringan pengguna yang baru dibuat, jadi Anda harus menghentikan kontainer dan menghapus jaringan yang ada dalam rentang yang salah.
Pada 18.09, Docker menambahkan kemampuan untuk menentukan rentang alamat untuk jaringan overlay yang dihasilkan mode swarm. Ini hanya dapat dilakukan pada saat pembuatan swarm sekarang, semoga itu akan diperbarui di masa mendatang untuk memungkinkan docker swarm update untuk menyesuaikan kolam ini:
Mengkonfigurasi jaringan jembatan default: "...Untuk mengkonfigurasi jaringan jembatan default, Anda menentukan opsi di daemon.json. Berikut adalah contoh daemon.json dengan beberapa opsi yang ditentukan. Hanya tentukan pengaturan yang perlu Anda sesuaikan. …"
Dengan compose: Tentukan jaringan kustom: "...Alih-alih hanya menggunakan jaringan aplikasi default, Anda dapat menentukan jaringan Anda sendiri dengan kunci jaringan tingkat atas. Ini memungkinkan Anda membuat topologi yang lebih kompleks dan menentukan driver dan opsi jaringan khusus. Anda juga dapat menggunakannya untuk menghubungkan layanan ke jaringan yang dibuat secara eksternal yang tidak dikelola oleh Compose. …"
Mungkin sedikit brutal tapi saya hanya melakukan sudo ifconfig docker0 down untuk mematikan antarmuka yang bertentangan dengan wifi yang saya coba gunakan.