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!

Docker - Container Linking

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:

  1. Membuat aplikasi multi-penyenaraian yang kompleks
  2. Berkongsi data antara penyenaraian
  3. Menambahbaik keselamatan dengan mengasingkan perkhidmatan
  4. 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 penyenaraian mydb dan menamakaninya db 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:

  1. Menambah entri ke fail /etc/hosts di penyenaraian web
  2. Menetapkan pembolehubah persekitaran di penyenaraian web
  3. 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:

  1. Penyegerakan yang lebih baik
  2. Penyelesaian DNS automatik
  3. 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