Alamat IP statis tidak berubah saat kontainer atau layanan dihentikan dan dimulai, membuatnya berguna untuk jaringan permanen. Menetapkan alamat IP statis container Docker adalah cara mudah untuk membuatnya lebih mudah diakses.
Mengapa Menggunakan IP Statis?
Ada dua jenis "IP statis"; alamat IP pribadi yang digunakan untuk jaringan internal di dalam server, dan alamat IP publik yang digunakan untuk terhubung di luar server, seringkali melalui internet.
Jika Anda perlu mengatur alamat IP publik untuk sebuah wadah, Anda akan ingin menggunakan binding port. Anda dapat "memublikasikan" port pada wadah Docker agar dapat diakses dari host. Meskipun ada pengaturan jaringan yang lebih canggih, ini adalah yang termudah dan paling umum. Misalnya, mengikat port 80 (HTTP) pada host untuk menunjuk ke wadah NGINX:
docker run --publish=80:8080 nginx
Jika Anda ingin membuat alamat IP pribadi statis, Anda harus mempertimbangkan apakah Anda perlu menggunakannya sama sekali. Sebagian besar waktu, Anda ingin IP statis untuk berbicara dengan satu wadah dari yang lain, atau dari host. Dalam kebanyakan kasus, jaringan bawaan Docker dapat menangani ini.
Docker hadir dengan jaringan default, tetapi jika Anda membuatnya sendiri, Anda dapat memberikan alias wadah saat diluncurkan di jaringan itu. Alias ini akan menyelesaikan ke IP pribadi penampung secara otomatis. Misalnya, wadah NGINX di sini dapat mengakses instance MongoDB dengan string koneksi mongodb://mongohost:27017
.
docker network create example docker run --net example --name nginx -d nginx docker network connect example --alias mongohost mongodb
Untuk mempelajari lebih lanjut, Anda dapat membaca dokumentasi Docker tentang jaringan jembatan yang ditentukan pengguna.
Namun, masih ada banyak waktu ketika Anda ingin menentukan alamat IP pribadi secara manual, seperti mengakses wadah langsung dari host. Anda masih perlu menggunakan jaringan Docker khusus untuk melakukannya, tetapi mudah untuk menyiapkannya.
Menyiapkan IP Statis
Pertama, Anda harus menyiapkan jaringan Docker, dan karena kami peduli dengan alamat IP, Anda harus menentukan subnet tetap:
docker network create --subnet=172.20.0.0/16 customnetwork
TERKAIT: Apa itu Subnet, dan Bagaimana Pengaruhnya Terhadap Jaringan Saya?
Kemudian, Anda dapat menjalankan wadah, menentukan jaringan dengan --net
flag, dan tentukan IP dengan -ip
bendera:
docker run --net customnetwork --ip 172.20.0.10 -d container
Anda dapat memverifikasi alamat sudah benar dengan memeriksanya di wadah dengan exec -t bin/bash
, atau dengan memeriksa daftar container Docker:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' name_or_id
Menggunakan Docker Compose
Docker Compose adalah alat yang digunakan untuk meluncurkan beberapa wadah dengan pengaturan yang telah ditentukan. Ini termasuk menyiapkan jaringan dengan subnet tertentu, dan Anda dapat melampirkan wadah ke jaringan dengan IP tetap menggunakan ipv4_address
blok konfigurasi ditampilkan di sini:
version: '2' services: webserver: image: nginx container_name: web-server networks: customnetwork: ipv4_address: 172.20.0.10 networks: customnetwork: ipam: config: - subnet: 172.20.0.0/16