Di era teknologi saat ini, organisasi harus merilis aplikasi dengan cepat untuk menarik dan mempertahankan bisnis. Hal ini membuat tim membangun dan mengonfigurasi lingkungan penerapan lebih cepat dengan biaya lebih rendah. Namun, teknologi peti kemas membantu membangun infrastruktur ringan
Artikel ini akan menjelaskan metode penggelaran dan koneksi ke server MySQL di lingkungan berbasis kontainer
Sekarang, mari kita masuk ke seluk beluknya
2. Penerapan Kontainer MySQL
Pertama, mari kita lihat langkah-langkah yang terlibat dalam penyebaran kontainer MySQL. Pada dasarnya MySQL mengikuti model arsitektur Client-Server. Di sini, server adalah gambar wadah dengan database, sedangkan klien digunakan untuk mengakses database di mesin host
Kami telah membagi alur kerja penerapan menjadi tiga bagian
2. 1. Penerapan Server MySQL
Sekarang, mari bawa instance server MySQL ke Docker. Kami cukup membangun wadah berdasarkan gambar MySQL yang diambil dari Docker Hub. Ada dua hal yang harus kita pertimbangkan saat memilih versi image mana yang akan ditarik dari Docker Hub
- Stamping Gambar Resmi – Ini adalah gambar yang lebih aman dan dikurasi dari tim pengembang MySQL
- Tag Terbaru – Kecuali kami memiliki reservasi pada versi MySQL, kami dapat menggunakan versi terbaru yang tersedia di repositori
Mari tarik citra MySQL resmi dari Docker Hub menggunakan perintah docker pull
$ docker pull mysql:latest latest: Pulling from library/mysql f003217c5aae: Pull complete … … output truncated … … 70f46ebb971a: Pull complete db6ea71d471d: Waiting c2920c795b25: Downloading [=================================================> ] 105.6MB/107.8MB 26c3bdf75ff5: Download completeBiasanya, gambar adalah lapisan-lapisan berbeda yang dipasangkan dengan erat dalam bentuk terurut seperti yang dijelaskan dalam file manifes. Perintah tarik buruh pelabuhan kami akan mendapatkan lapisan gambar dari blob store dan secara otomatis membuat gambar menggunakan file manifes
… … output truncated … … 4607fa685ac6: Pull complete Digest: sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest_Gambar yang dibundel mendapatkan kode hash untuk referensi di masa mendatang seperti yang ditunjukkan di atas
Tanpa basa-basi lagi, mari jalankan containernya. Perintah docker run biasanya membuat lapisan wadah yang dapat ditulisi di atas lapisan gambar. Kita harus memberikan nama container menggunakan argumen -name dan menggunakan image MySQL dengan tag terbaru. Selanjutnya, kami akan mengatur kata sandi server MySQL melalui variabel lingkungan MYSQL_ROOT_PASSWORD. Dalam kasus kami, kata sandi disetel ke "baeldung"
Terakhir, opsi -d membantu kita menjalankan wadah sebagai daemon. Output melempar kode hash lain untuk manajemen wadah di masa mendatang
$ docker run --name bael-mysql-demo -e MYSQL_ROOT_PASSWORD=baeldung -d mysql:latest fedf880ce2b690f9205c7a37f32d75f669fdb1da2505e485e44cadd0b912bd35Kita dapat melihat semua wadah yang berjalan di host melalui perintah ps
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fedf880ce2b6 mysql:latest "docker-entrypoint.s…" 17 seconds ago Up 16 seconds 3306/tcp, 33060/tcp bael-mysql-demo2. 2. Instalasi Klien MySQL
Ini wajib untuk menginstal klien untuk mendapatkan akses mudah ke server MySQL. Bergantung pada kebutuhan kita, kita dapat menginstal klien di mesin host atau mesin atau wadah lain yang memiliki jangkauan IP dengan wadah server
$ sudo apt install mysql-client -y Reading package lists.. Done Building dependency tree Reading state information.. Done mysql-client is already the newest version (5.7.37-0ubuntu0.18.04.1). … … output truncated … …_Sekarang, mari aktifkan ekstraksi jalur instalasi dan versi klien MySQL
2. 3. Membangun Komunikasi
Selanjutnya, mari masuk ke server menggunakan klien yang diinstal. Secara tradisional, kami menggunakan perintah MySQL dengan nama pengguna dan kata sandi untuk login server. Namun, itu tidak akan berfungsi dalam kasus solusi berbasis wadah
$ mysql -u root -p ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)_Kami akan berakhir dengan kesalahan soket seperti yang diilustrasikan di atas. Di sini, penting untuk dipahami bahwa server MySQL adalah wadah dan tidak hanya dipasang di mesin host. Seperti yang disorot di bagian di atas, kontainer adalah server ringan dengan sumber daya komputasi, jaringan, dan penyimpanannya sendiri
Perintah inspeksi membantu mengalokasikan alamat IP ke instance server MySQL
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bael-mysql-demo 172.17.0.2Mari berikan alamat IP di atas dalam opsi host klien, dengan nomor port default dan tipe protokol sebagai TCP
$ mysql -h 172.17.0.2 -P 3306 --protocol=tcp -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. … … output truncated … … mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> exit Bye_Selamat, kita telah berhasil masuk ke server MySQL
3. Kesimpulan
Singkatnya, kita telah melihat secara rinci langkah-langkah untuk menerapkan container server MySQL, menginstal klien MySQL di mesin host, dan terakhir, membangun koneksi di antara mereka menggunakan informasi container.