Bagaimana cara dockerize database mysql?

Tutorial ini menjelaskan metode langkah demi langkah untuk menyiapkan dan menggunakan container Docker MySQL dengan contoh

Docker adalah platform orkestrasi wadah yang memungkinkan kita untuk menjalankan image dari aplikasi apa pun (dalam hal ini server MySQL) pada sistem host (yang dapat berperilaku di OS apa pun yang diinstal – contoh. Linux, Windows, MacOS, dll)

Menggunakan MySQL dengan buruh pelabuhan akan membantu pengembang atau siapa pun yang ingin belajar atau bereksperimen dengan MySQL tanpa melalui kerumitan instalasi atau konfigurasi apa pun

Menjalankan melalui buruh pelabuhan hanya mengharuskan Anda memasang buruh pelabuhan di mesin Anda, dan kemudian Anda dapat menggunakan gambar buruh pelabuhan MySQL yang tersedia

=> Klik di sini untuk seri tutorial MySQL lengkap

Bagaimana cara dockerize database mysql?

Apa yang Akan Anda Pelajari

Memahami MySQL Docker

Menjalankan MySQL dengan wadah Docker adalah mekanisme yang banyak digunakan, terutama untuk arsitektur layanan mikro di mana biasanya setiap layanan mikro bekerja dengan basis data/tabelnya sendiri dan pengujian integrasi/komponen yang terisolasi dapat dijalankan pada versi basis data yang ditampung

Konsep Kontainer MySQL

Pikirkan wadah buruh pelabuhan sebagai mesin virtual ringan yang dapat berjalan secara independen dari aplikasi lain (dan dapat hidup dalam konteksnya sendiri). Aplikasi apa pun – misalnya, MySQL, dalam hal ini, dapat digabungkan bersama sebagai wadah dan dapat digunakan di host lokal atau jarak jauh

Sekarang wadah ini adalah ekosistem mini dan memiliki semua komponen yang digabungkan bersama yang diperlukan agar MySQL dapat dijalankan dengan benar

Prasyarat. Menginstal Docker

Untuk membuat MySQL sebagai wadah buruh pelabuhan, mesin host harus memasang buruh pelabuhan

>> Bacaan yang disarankan untuk menginstal Docker=>  Instalasi Dan Pengantar Docker

Untuk memvalidasi instalasi buruh pelabuhan, cukup jalankan perintah di bawah ini

docker version

Jika output ditampilkan seperti di bawah ini, ini berarti instalasi docker berhasil

Bagaimana cara dockerize database mysql?

Langkah-langkah Setup MySQL Dengan Docker

#1) Tarik gambar buruh pelabuhan yang diinginkan

Gambar Docker untuk MySQL dapat ditarik dari hub docker. Kami akan menarik gambar terbaru mysql-server dari hub buruh pelabuhan dalam contoh kami. Gambar wadah Docker diterbitkan melalui sumber resmi di hub buruh pelabuhan

>> Klik di sini untuk menemukan semua gambar/versi buruh pelabuhan yang tersedia dari MySQL

Kecuali versi tertentu diperlukan, kami selalu dapat menentukan tag sebagai 'terbaru' yang akan menarik versi MySQL terbaru yang tersedia dari registri docker hub yang biasa disebut docker hub

Sintaks untuk menarik gambar buruh pelabuhan

docker pull mysql:latest
_

Setelah dieksekusi, Anda akan melihat output seperti di bawah ini

Bagaimana cara dockerize database mysql?

Setelah gambar kontainer diunduh sepenuhnya di host, Anda dapat melihat semua gambar yang diunduh dengan menjalankan perintah di bawah ini

docker image ls

#2) Mulai wadah dengan gambar yang ditarik

Sekarang, mari kita mulai wadah menggunakan docker image yang diunduh untuk MySQL
Secara default, jika tidak ada kata sandi root yang ditentukan bersama dengan perintah docker saat membuat wadah, akan ada kata sandi acak yang dibuat untuk pengguna root dan untuk mengambil kata sandi root, kita perlu mengakses log wadah buruh pelabuhan

a) Mari pertama-tama jalankan wadah dengan gambar yang diunduh

Sintaksis

docker run --name {optional-name-for-the-container} -d {name of the image tag}

Dalam sintaks di atas,

  • –nama adalah kolom opsional dan dapat digunakan untuk menentukan nama ramah yang dapat digunakan untuk merujuk wadah nanti. Jika ini tidak ditentukan – Docker memberikan nama yang dibuat secara acak ke wadah
  • -d mewakili nama gambar yang digunakan untuk membuat wadah. Jika gambar ditarik lebih awal, gambar yang sama akan digunakan kembali. Jika gambar tidak ada di sistem lokal, maka ini pertama-tama akan menarik gambar dari hub buruh pelabuhan dan kemudian membuat wadah

Contoh. Kami akan membuat wadah bernama learn-mysql-docker dari tag gambar yang digunakan sebelumnya - mysql. terbaru

docker run --name learn-mysql-docker -d mysql:latest -e MYSQL_RANDOM_ROOT_PASSWORD=1
_

Perhatikan penggunaan -e flag, yang tidak lain adalah menentukan variabel lingkungan. Di sini kami telah menentukan nilai untuk MYSQL_RANDOM_ROOT_PASSWORD=1

Ini berarti bahwa saat memulai server MySQL, kata sandi root akan diatur ke String yang dibuat secara acak (nanti kita akan lihat di bagian selanjutnya, bagaimana kita dapat mengambil kata sandi acak yang dihasilkan secara dinamis melalui log wadah Docker)

Catatan. Ada opsi lain juga untuk pengaturan default kata sandi root

Pilihan yang tersedia adalah sebagai berikut

  • Menentukan kata sandi khusus. Gunakan variabel lingkungan bernama MYSQL_ROOT_PASSWORD dan setel ke kata sandi yang diinginkan untuk pengguna root
  • Membuat kata sandi acak dibuat. Gunakan variabel lingkungan bernama MYSQL_RANDOM_ROOT_PASSWORD dan atur nilainya menjadi 1
  • Mengatur kata sandi kosong untuk pengguna root. Gunakan variabel lingkungan bernama MYSQL_ALLOW_EMPTY_PASSWORD dan atur ke 1. Ini akan menetapkan kata sandi kosong/nol untuk pengguna root

Ada variabel lingkungan lain yang tersedia, yaitu MYSQL_ONETIME_PASSWORD. Ini, ketika disetel ke true (1), akan kedaluwarsa kata sandi pengguna root dan mengharapkan pengguna membuat kata sandi baru setelah login pertama. (Harap dicatat bahwa variabel env ini hanya diterapkan di versi MySQL lebih dari 5. 6)

Keluaran

Setelah perintah di atas dijalankan, Anda akan melihat buruh pelabuhan menampilkan ID wadah yang dibuat

Sebagai contoh

Bagaimana cara dockerize database mysql?

Mari memvalidasi apakah penampung berhasil dibuat dengan mencantumkan penampung buruh pelabuhan yang tersedia di host dan memfilter nama penampung yang telah kami tentukan

docker container ls -a | grep "learn-mysql-docker"

Anda akan melihat output seperti di bawah ini (jika wadah berhasil dimulai)

Bagaimana cara dockerize database mysql?

b) Ambil kata sandi root. Untuk terhubung dengan pengguna root, kita perlu memasukkan kata sandi. Karena kami telah menyebutkan variabel env untuk menyetel/mengizinkan kata sandi acak, kami akan mengambil kata sandi ini dari log wadah Docker

Jalankan perintah di bawah ini untuk mengambil log dan kata sandi yang dibuat secara acak

docker logs learn-mysql-docker | grep "GENERATED ROOT PASSWORD:"
_

Keluaran

Bagaimana cara dockerize database mysql?

Seperti yang disorot pada gambar di atas, Anda dapat melihat kata sandi acak dibuat. Di bagian selanjutnya, kami akan menggunakan kata sandi ini untuk masuk dengan pengguna root

c) Bagaimana cara memulai wadah buruh pelabuhan dengan kata sandi yang diinginkan?
Jika kita tidak ingin kata sandi acak dihasilkan saat penampung dimulai, kita dapat menentukan variabel lingkungan yang berbeda bernama MYSQL_ROOT_PASSWORD dan menentukan nilai variabel ini sebagai kata sandi yang diinginkan yang ingin kita tetapkan untuk pengguna root

Dalam hal ini, perintah untuk membuat wadah adalah seperti di bawah ini

docker run --name learn-mysql-docker -d mysql:latest -e MYSQL_ROOT_PASSWORD=`password123`

#3) Masuk ke wadah yang dibuat

Untuk melakukannya, kami akan menggunakan nama penampung yang dibuat (atau id) dan masuk ke aplikasi bash shell di dalam penampung

docker exec -it learn-mysql-docker bash
_

Jika wadah sudah habis dan berhasil dibuat, setelah menjalankan perintah di atas Anda akan melihat bash shell di dalam wadah

Bagaimana cara dockerize database mysql?

#4) Jalankan shell MySQL

Setelah masuk ke wadah, kami akan memulai shell MySQL dengan pengguna root dan menentukan kata sandi yang diperoleh secara acak

Bagaimana cara dockerize database mysql?

#5) Jalankan contoh perintah MySQL

Setelah kita masuk dengan pengguna root, mari sekarang coba jalankan beberapa perintah sederhana untuk memastikan semuanya bekerja dengan baik

a) TAMPILKAN semua database. Jalankan perintah di bawah ini

SHOW DATABASES;
_

Bagaimana cara dockerize database mysql?

b) Ubah kata sandi pengguna root menjadi 'Kata Sandi' - Jalankan perintah di bawah ini dan coba masuk lagi dengan pengguna root (terhadap kata sandi baru i. e. Kata sandi, yang diatur oleh perintah ini)

Bagaimana cara dockerize database mysql?

Menghubungkan ke MySQL Docker Dari Mesin Host

Pada bagian di atas, kita telah login ke shell MySQL yang ada di dalam container docker. Kami juga dapat mengekspos port dari wadah MySQL di buruh pelabuhan ke port lokal dan menggunakannya untuk pengembangan lokal untuk terhubung ke MySQL
Mari kita coba memahami langkah-langkah berbeda yang terlibat di sini

#1) Mulai wadah dan petakan ke port lokal. Pada langkah ini, kita akan memetakan port dari docker container ke port di localhost yang akan digunakan untuk terhubung ke MySQL

a) Pertama hentikan/hapus wadah yang telah kita buat di bagian sebelumnya. Ini diperlukan untuk menghindari kebingungan dan mendapatkan kesalahan terkait alamat port

Perintah yang harus dijalankan adalah

docker pull mysql:latest
_0

Setelah penampung dihentikan, kami dapat menghapus penampung menggunakan perintah di bawah ini

docker pull mysql:latest
_1

b) Setelah wadah dihapus, kita dapat memulai wadah baru dengan gambar MySQL yang sama dan juga memetakan port docker ke port host lokal

Ini dapat dilakukan dengan menjalankan perintah di bawah ini

docker pull mysql:latest
_2

Mari kita coba pahami perintah di atas

  • -p mewakili port dan 13306. 3306 mewakili pemetaan port 3306 dari wadah buruh pelabuhan ke 13306 di localhost (atau mesin host tempat wadah itu ada)
  • –name adalah nama ramah untuk docker container yang sedang kita inisialisasi
  • -e mewakili variabel Lingkungan. Kami menyetel MYSQL_ROOT_PASSWORD ke 'Kata Sandi' yang tidak lain adalah kata sandi untuk pengguna root
  • -d mewakili nama gambar buruh pelabuhan. Dalam hal ini, mysql. terbaru akan menjadi gambar yang akan digunakan untuk membuat wadah

c) Pastikan tidak ada kesalahan setelah perintah di atas dijalankan. Jika semuanya berjalan dengan baik, perintah di atas akan mencetak ID wadah yang dihasilkan

Lihat gambar di bawah ini

Bagaimana cara dockerize database mysql?

#2) Setelah wadah berhasil dimulai, sambungkan ke MySQL dari localhost -menggunakan baris perintah atau alat GUI seperti meja kerja MySQL

a) Mari jalankan/sambungkan ke database MySQL melalui baris perintah (Prasyarat – harap pastikan bahwa localhost juga telah menginstal alat Baris Perintah MySQL)

docker pull mysql:latest
_3

Setelah perintah dijalankan, Anda akan melihat bahwa Anda terhubung ke instance MySQL berbasis docker. Anda dapat mencoba menjalankan perintah seperti

SHOW DATABASES;
_

Dan pastikan pengaturannya berfungsi dengan baik

b) Untuk terhubung melalui meja kerja MySQL, Anda cukup menentukan nama host sebagai localhost dan no port. sebagai port yang dipetakan yang digunakan

Siapkan koneksi baru dengan localhost dan port sebagai 13306

Bagaimana cara dockerize database mysql?

Simpan kata sandi di gantungan kunci seperti yang ditunjukkan pada gambar di bawah ini

Bagaimana cara dockerize database mysql?

Kemudian, hubungkan ke database

Menyiapkan MySQL Docker Menggunakan Docker Compose File

Komposisi Docker adalah detail yang diperlukan untuk menyiapkan gambar/wadah buruh pelabuhan dalam bentuk template, yang dalam format YAML. Hal ini memudahkan untuk membagikan dan memeriksanya ke dalam sistem kontrol versi seperti TFS atau GIT, di mana siapa pun yang mengerjakan proyek dapat dengan mudah mengambil file ini dan menjalankannya untuk menyiapkan wadah buruh pelabuhan yang diperlukan dengan informasi yang diperlukan

Ada beberapa utilitas dan halaman web yang memungkinkan Anda membuat file pembuat buruh pelabuhan dengan mudah

Kita dapat menggunakan yang dari sini dan cukup menempelkan perintah buruh pelabuhan yang telah kita gunakan untuk membuat wadah

Lihat gambar di bawah ini

Bagaimana cara dockerize database mysql?

Kita dapat menyalin konten dari file yang dibuat dan menyimpan konten dengan file bernama docker-compose. yaml di folder di desktop/laptop Anda

Setelah file disimpan, navigasikan ke folder (tempat file disimpan) dan jalankan perintah di bawah ini

docker pull mysql:latest
_5

Jika konten file penulisan sudah benar dan gambar tersedia, wadah buruh pelabuhan baru akan dimulai (dan dapat digunakan dengan cara yang sama seperti yang dijelaskan di bagian sebelumnya dari artikel ini)

Pertanyaan yang Sering Diajukan

T #1) Bagaimana cara membuat database di MySQL Docker?

Menjawab. MySQL Docker dalam wadah contoh dapat dihubungkan melalui baris perintah dengan masuk ke wadah. Setelah koneksi dibuat, perintah SQL apa pun dapat dijalankan

Untuk terhubung ke MySQL di dalam wadah, berikut sintaksnya

docker pull mysql:latest
_6

Setelah perintah di atas dijalankan, Anda akan diminta untuk memasukkan password database. Dan setelah kata sandi diverifikasi, Anda dapat menjalankan perintah berbasis SQL apa pun

T #2) Bagaimana cara mengekspos port tertentu dari buruh pelabuhan untuk MySQL?

Menjawab. Pemetaan port dapat ditentukan saat wadah buruh pelabuhan sedang dibuat. Misalnya, jika Anda ingin memetakan port docker ke port tertentu di localhost Anda, Anda dapat menggunakan perintah seperti

docker pull mysql:latest
_2

Di sini 13306 adalah port di mesin host, dan 3306 adalah port di container

T #3) Bagaimana cara memulai ulang/menghentikan dan menghapus wadah MySQL berbasis buruh pelabuhan?

Menjawab. Ada beberapa perintah praktis dan berguna untuk wadah buruh pelabuhan

  • Mengulang kembali. Perintah ini digunakan untuk memulai kembali wadah yang sedang berjalan
docker pull mysql:latest
_8
  • Berhenti. Perintah ini akan menghentikan sementara wadah yang sedang berjalan (dan dapat dilanjutkan/dimulai kembali nanti)
docker pull mysql:latest
_9
  • Menghapus. Ini akan menghapus wadah buruh pelabuhan dan sumber daya apa pun yang terkait dengan wadah itu
docker image ls
0

T #4) Bagaimana cara terhubung ke instance MySQL yang di-docker dari mesin host?

Menjawab. Setelah port docker dan port localhost dipetakan, kita dapat terhubung ke instance MySQL yang ada di dalam docker dari localhost melalui baris perintah atau melalui alat UI seperti meja kerja MySQL

Untuk memulai melalui baris perintah – Alat baris perintah MySQL juga harus diinstal pada mesin host

Perintah di bawah ini dapat digunakan untuk terhubung ke instance MySQL di buruh pelabuhan melalui host

docker pull mysql:latest
_3

T #5) Bagaimana kita bisa menjalankan versi tertentu dari MySQL menggunakan Docker?

Menjawab. Saat menentukan opsi gambar buruh pelabuhan (menggunakan -d), saat membuat penampung, kita dapat menentukan gambar/versi penampung yang tersedia

Jika yang terbaru ditentukan, itu akan mengambil gambar yang diterbitkan terakhir dari penampung yang diberikan

Misalnya, untuk MySQL kita dapat menentukan mysql. terbaru untuk mengambil versi terbaru dan sesuatu seperti mysql. 8. 0. 22 misalnya untuk mengambil versi 8. 0. 22

>> Lihat dokumentasi Docker Hub untuk MySQL untuk melihat daftar lengkap semua versi yang tersedia

Kesimpulan

Dalam tutorial ini, kita telah belajar tentang menyiapkan server MySQL menggunakan Docker, bukan mesin host yang sebenarnya

Docker adalah sistem orkestrasi wadah yang kuat, yang memungkinkan pengguna untuk menghosting sejumlah aplikasi sebagai wadah dan memungkinkan mereka untuk digunakan sebagai sistem yang terisolasi itu sendiri. Itu juga membutuhkan pengaturan minimal dan menyediakan cara cepat untuk menghindari semua kerepotan pengaturan hanya dengan beberapa perintah

Saat ini, dengan arsitektur layanan mikro di mana berbagai layanan mikro bergantung pada database mereka sendiri, menerapkan server MySQL sebagai wadah Docker telah menjadi praktik yang cukup umum.

Ini juga banyak digunakan untuk eksekusi lokal apa pun, membuat bukti konsep atau bahkan untuk menjalankan tes integrasi ujung ke ujung di lingkungan yang terisolasi

Bagaimana cara Dockerisasi database?

Untuk pelajaran ini, kita akan menggunakan Docker Compose, karena ini akan sering Anda gunakan untuk mengintegrasikan database ke dalam aplikasi Dockerized. .
Tentukan cara membangun server Node
Tambahkan instruksi untuk membangun database
Kaitkan server dengan database

Bagaimana cara mengimpor database MySQL ke wadah Docker?

Pelajari cara mengimpor database MySQL ke container Docker MySQL dan membuat kueri database menggunakan Python dan PyMySQL. .
Masuk ke MySQL. .
Buat database MySQL kosong. .
Unduh file impor basis data. .
Impor dump SQL ke database MySQL Anda. .
Akses database baru. .
Buka buku catatan Jupyter