Docker - Pautan Penyenaraian
Pengenalan kepada Pautan Penyenaraian
Hai, para penggemar Docker yang bersemangat! Hari ini, kita akan melantikan ekspedisi ke dunia yang menarik ini iaitu pautan penyenaraian. Sebagai guru komputer di lingkungan anda, saya di sini untuk memandu anda melalui perjalanan ini, bahkan jika anda belum pernah menulis satu baris kod sebelum ini. Jadi, pasangkan tali dan mari kita layari di laut penyenaraian!
Pautan penyenaraian adalah seperti memperkenalkan dua rakan di sebuah parti. Ia membolehkan penyenaraian berkomunikasi satu sama lain, berkongsi maklumat dan sumber. Bayangkan anda di sebuah jamuan makan malam (itu adalah hos Docker kita), dan setiap hidangan (penyenaraian) perlu tahu apa jenis hidangan lain yang tersedia. Itu adalah esensial apa yang kita lakukan dengan pautan penyenaraian!
Mengapa Pautan Penyenaraian Penting
Anda mungkin bertanya, " Mengapa saya perlu peduli tentang pautan penyenaraian?" Well, biarkan saya ceritakan cerita pendek. Pada suatu masa dahulu, di sebuah pusat data yang jauh, aplikasi hidup dalam isolasi. Mereka tidak dapat berbicara kepada satu sama lain, berkongsi data, atau bekerja bersama. Itu adalah kehidupan yang sunyi. Tetapi kemudian, pautan penyenaraian muncul dan mengubah segalanya!
Pautan penyenaraian membolehkan kita untuk:
- Membuat aplikasi multi-penyenaraian yang kompleks
- Berkongsi data antara penyenaraian
- Menambahbaik keselamatan dengan mengasingkan perkhidmatan
- Mengeskal aplikasi kita lebih mudah
Pautan Penyenaraian Asas
Mari kita mulakan dengan contoh yang mudah. Kita akan membuat dua penyenaraian: pelayan web dan pangkalan data, dan mengpaut mereka bersama.
Langkah 1: Buat Penyenaraian Pangkalan Data
Pertama, kita akan membuat penyenaraian pangkalan data kita. Kita akan menggunakan MySQL untuk contoh ini.
docker run -d --name mydb -e MYSQL_ROOT_PASSWORD=secret mysql:latest
mari kitauraikan ini:
-
-d
: Jalankan penyenaraian dalam mod terasing (di belakang) -
--name mydb
: Berikan penyenaraian kita nama -
-e MYSQL_ROOT_PASSWORD=secret
: Tetapkan pembolehubah persekitaran untuk kata laluan root -
mysql:latest
: Gunakan imej MySQL terbaru
Langkah 2: Buat Penyenaraian Pelayan Web
Sekarang, mari kita buat penyenaraian pelayan web kita dan pautkan kepada pangkalan data.
docker run -d --name myweb --link mydb:db -p 80:80 nginx:latest
Ini adalah apa yang berlaku:
-
--link mydb:db
: Ini adalah ilmu sihir! Kita sedang mengpaut penyenaraianmydb
dan menamakaninyadb
di dalam penyenaraian web kita -
-p 80:80
: Peta port 80 di hos ke port 80 di penyenaraian
Memahami Pautan
Bila kita gunakan pilihan --link
, Docker melakukan beberapa hal untuk kita:
- Menambah entri ke fail
/etc/hosts
di penyenaraian web - Menetapkan pembolehubah persekitaran di penyenaraian web
- Membolehkan penyenaraian web untuk menyambung ke penyenaraian pangkalan data
Mari kita lihat di dalam penyenaraian web kita untuk melihat apa yang berlaku:
docker exec -it myweb bash
Sekali di dalam, kita boleh semak fail /etc/hosts
:
cat /etc/hosts
Anda akan melihat entri untuk penyenaraian db
dengan alamat IP nya.
Pembolehubah Persekitaran
Docker juga menetapkan pembolehubah persekitaran untuk kita. Mari senarai mereka:
env | grep DB_
Anda akan melihat pembolehubah persekitaran seperti DB_PORT
, DB_NAME
, dll. Ini membuatkan mudah bagi aplikasi kita untuk menyambung ke pangkalan data.
Pautan Warisan vs. Rangkaian Ditakrifkan Pengguna
Sekarang, saya ada konfesi membuat. Bendera --link
yang kita gunakan adalah sebenarnya dianggap warisan di Docker. Ia seperti menggunakan telefon bimbit di zaman smartphone - ia bekerja, tetapi terdapat opsyen yang lebih baik tersedia.
Cara modern untuk mengpaut penyenaraian adalah dengan menggunakan rangkaian ditakrifkan pengguna. Mari lihat bagaimana ia berfungsi:
Langkah 1: Buat Rangkaian
docker network create mynetwork
Langkah 2: Jalankan Penyenaraian di Rangkaian
docker run -d --name mydb --network mynetwork -e MYSQL_ROOT_PASSWORD=secret mysql:latest
docker run -d --name myweb --network mynetwork -p 80:80 nginx:latest
Sekarang penyenaraian kita boleh berkomunikasi menggunakan nama container mereka sebagai hostname, tanpa pautan eksplisit!
Kelebihan Rangkaian Ditakrifkan Pengguna
Rangkaian ditakrifkan pengguna menyediakan beberapa kelebihan:
- Penyegerakan yang lebih baik
- Penyelesaian DNS automatik
- Kemampuan menyambung/mengasingkan penyenaraian daripada rangkaian secara langsung
Contoh praktikal: WordPress dan MySQL
Mari kita aplikasikan pengetahuan kita dengan contoh dunia nyata: menetapkan WordPress dengan MySQL.
Langkah 1: Buat Rangkaian
docker network create wordpress-network
Langkah 2: Jalankan Penyenaraian MySQL
docker run -d --name wordpress-db --network wordpress-network -e MYSQL_ROOT_PASSWORD=rootpassword -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpresspassword mysql:5.7
Langkah 3: Jalankan Penyenaraian WordPress
docker run -d --name wordpress-site --network wordpress-network -e WORDPRESS_DB_HOST=wordpress-db -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpresspassword -e WORDPRESS_DB_NAME=wordpress -p 8080:80 wordpress:latest
Sekarang, jika anda melawat http://localhost:8080
di pelayar anda, anda akan melihat halaman tetapan WordPress!
Kesimpulan
Tahniah! Anda baru-baru ini mengambil langkah pertama ke dunia pautan penyenaraian. Kita telah meliputi banyak hal, dari pautan asas ke rangkaian ditakrifkan pengguna, dan bahkan menetapkan laman WordPress menggunakan penyenaraian.
Ingat, pautan penyenaraian adalah tentang membolehkan aplikasi kita bekerja bersama dalam harmoni. Ia seperti mengkonduksi orkestra - setiap penyenaraian adalah instrumen, dan bila dipautkan dengan betul, mereka mencipta muzik yang indah bersama.
Berpelajaran terus tentang Docker, terus mencuba penyenaraian dan opsyen rangkaian yang berbeza. Semakin anda berlatih, semakin merasakananda selesa dengan konsep ini.
Selamat membuat penyenaraian, dan moga imej Docker anda sentiasa berjaya dibina!
Credits: Image by storyset