Dengan populariti pengkomputeran awan dan teknologi kontena, Docker telah menjadi penyelesaian kontena yang popular. Memandangkan bekas Docker menggunakan alamat IP mesin hos secara lalai, dalam beberapa kes adalah perlu untuk menentukan alamat IP khusus untuk bekas Docker. Dalam artikel ini, kita akan membincangkan cara untuk menentukan alamat IP dalam bekas Docker.
Peruntukan alamat IP untuk bekas Docker
Dalam Docker, alamat IP bekas diperuntukkan secara dinamik oleh daemon Docker. Secara lalai, ia menggunakan alamat IP hos. Dalam kes ini, semua bekas Docker boleh berkomunikasi melalui alamat IP hos.
Walaupun tetapan lalai ini mencukupi untuk kebanyakan aplikasi, dalam beberapa kes anda mungkin perlu menentukan alamat IP statik untuk bekas Docker anda.
Nyatakan alamat IP untuk bekas Docker
Terdapat dua cara untuk menentukan alamat IP statik untuk bekas Docker. Anda boleh menyambungkan bekas Docker ke rangkaian fizikal hos melalui profil rangkaian VLAN atau macvlan dan mengkonfigurasinya untuk menggunakan alamat IP statik. Selain itu, anda boleh menggunakan mod rangkaian jambatan untuk menyediakan rangkaian anda sendiri untuk bekas dan kemudian mengkonfigurasinya untuk menggunakan alamat IP statik.
Kaedah 1: Gunakan rangkaian VLAN atau macvlan
Rangkaian VLAN dan macvlan ialah konsep LAN maya dan LAN fizikal masing-masing. Mereka membenarkan anda menyambungkan bekas Docker ke rangkaian fizikal hos dan memberikannya alamat IP statik. Kelebihan utama pendekatan ini ialah bekas Docker dan mesin hos berkongsi rangkaian yang sama, jadi bekas boleh berkomunikasi secara langsung dengan peranti luaran.
Langkah-langkah untuk menggunakan rangkaian VLAN atau macvlan adalah seperti berikut:
Untuk menyambungkan bekas Docker ke rangkaian fizikal, anda mesti membuat rangkaian VLAN atau macvlan dahulu. Anda boleh mencipta rangkaian VLAN menggunakan arahan berikut:
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynetwork
Perintah ini akan mencipta rangkaian VLAN bernama mynetwork, yang menggunakan subnet 192.168.1.0/24 dan get laluan 192.168.1.1. Selain itu, ia menyatakan bahawa antara muka rangkaian induknya ialah eth0. Dalam contoh ini, eth0 ialah antara muka rangkaian pada mesin hos.
Seterusnya, anda perlu mencipta bekas Docker dalam rangkaian VLAN atau macvlan. Gunakan arahan berikut untuk mencipta bekas Docker dan sambungkannya ke rangkaian mynetwork:
docker run -itd --name mycontainer --network mynetwork --ip 192.168.1.10 busybox
Perintah ini akan mencipta bekas Docker bernama mycontainer dan menyambungkannya ke rangkaian mynetwork. Selain itu, ia memberikan alamat IP statik 192.168.1.10 kepada bekas.
Kini anda boleh berkomunikasi dengan bekas mycontainer tanpa menggunakan alamat IP hos. Selain itu, peranti lain boleh mengakses bekas ini melalui alamat IP statik 192.168.1.10.
Kaedah 2: Gunakan rangkaian jambatan
Rangkaian jambatan ialah salah satu mod rangkaian yang biasa digunakan dalam Docker. Ia membolehkan anda membuat rangkaian baharu untuk bekas Docker dan mengkonfigurasinya untuk menggunakan alamat IP statik. Menggunakan pendekatan ini, bekas Docker diasingkan sepenuhnya dan tidak boleh berkongsi rangkaian dengan hos atau bekas lain.
Langkah-langkah untuk menggunakan rangkaian jambatan adalah seperti berikut:
Untuk mencipta rangkaian baharu bagi bekas Docker, gunakan arahan berikut:
docker network create --subnet=172.18.0.0/16 mybridge
Arahan ini akan mencipta rangkaian jambatan bernama mybridge dan menentukan subnetnya sebagai 172.18.0.0/16.
Seterusnya, anda perlu menjalankan aplikasi web yang berfungsi dalam bekas Docker. Mulakan bekas pelayan web nginx menggunakan arahan berikut:
docker run -itd --name mynginx --network mybridge nginx
Perintah ini akan memulakan bekas Nginx bernama mynginx dalam rangkaian mybridge.
Sekarang, anda perlu menentukan alamat IP statik untuk bekas mynginx. Berikan alamat IP statik kepada bekas menggunakan arahan berikut:
docker network connect --ip 172.18.0.2 mybridge mynginx
Perintah ini akan menetapkan alamat IP 172.18.0.2 kepada bekas mynginx. Anda kini boleh mengakses menggunakan alamat IP ini seperti mana-mana alamat IP awam yang lain.
Ringkasan
Alamat IP bekas Docker diberikan secara dinamik oleh daemon Docker. Secara lalai, ia menggunakan alamat IP hos. Walau bagaimanapun, dalam beberapa kes, anda mungkin perlu menentukan alamat IP statik untuk bekas Docker anda. Kami telah membincangkan dua kaedah berbeza, anda boleh menyambungkan bekas Docker ke rangkaian fizikal hos menggunakan rangkaian VLAN atau macvlan dan tetapkannya kepada alamat IP statik, atau gunakan mod rangkaian jambatan untuk menyediakan rangkaiannya sendiri untuk bekas dan konfigurasikannya Untuk menggunakan alamat IP statik. Kini anda boleh memilih kaedah yang sesuai dengan keperluan anda untuk menetapkan alamat IP tertentu kepada bekas Docker.
Atas ialah kandungan terperinci Bagaimana untuk menentukan ip dalam docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!