Jika Anda berencana untuk menginstal MariaDB di sistem Anda, Anda mungkin ingin mengisolasinya dari sistem lainnya sehingga Anda tidak akan merusak apa pun. Memang, Anda dapat menggunakan mesin virtual, tetapi itu akan membutuhkan banyak sumber daya karena Anda harus menginstal seluruh sistem di atas yang lain. Jadi mengapa tidak menggunakan Docker untuk MariaDB?
Jika Anda memiliki perangkat keras yang terbatas, tidak masalah, Docker dapat membantu! Docker adalah solusi virtualisasi yang ringan. Dan dalam tutorial ini, Anda akan belajar men-deploy Docker produksi untuk instalasi server MariaDB di dalam container Docker dengan penggunaan resource yang lebih sedikit.
Baca terus dan jangan pernah menyia-nyiakan sumber daya Anda lagi!
Prasyarat
Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut ini.
- Mesin Linux – Demo ini menggunakan Ubuntu 20.04 LTS, tetapi semua distribusi Linux akan berfungsi.
- Docker terpasang di mesin Anda.
- Pengguna non-root dengan hak istimewa sudo.
Bekerja dengan Gambar Docker MariaDB
Cara terbaik untuk mulai bekerja dengan MariaDB di komputer Anda adalah dengan menggunakan image Docker resmi untuk MariaDB. Gambar tersebut berisi penginstalan MariaDB versi stabil terbaru, ditambah beberapa skrip untuk membantu Anda mengelola penampung.
1. Jalankan apt update
perintah di bawah ini untuk memastikan sistem Anda mutakhir. Perintah ini mengambil daftar paket terbaru dari repositori Ubuntu dan menginstal semua paket yang tersedia.
sudo apt update -y

2. Selanjutnya, jalankan systemctl
perintah di bawah ini untuk memulai docker
melayani.
sudo systemctl start docker
Memulai layanan Docker tidak memberikan output. Tetapi jika Anda menjalankan perintah terkait buruh pelabuhan saat Docker tidak berjalan, Anda akan mendapatkan kesalahan berikut.

3. Jalankan docker status
perintah di bawah ini untuk memastikan bahwa docker
layanan sedang berjalan.
sudo service docker status
Di bawah ini, Anda dapat melihat layanan Docker aktif (berjalan).

4. Terakhir, jalankan gpasswd
perintah di bawah ini untuk menambahkan pengguna Anda saat ini ke docker kelompok. Melakukannya memungkinkan pengguna untuk menjalankan docker
perintah.
sudo gpasswd -a "${USER}" docker

Menambahkan pengguna saat ini ke docker group menyelamatkan Anda dari kesalahan berikut saat menjalankan perintah buruh pelabuhan.

5. Jalankan docker search
di bawah ini perintah untuk mencari gambar MariaDB. Perintah ini mencari Docker Hub (set repositori resmi) untuk gambar yang cocok dengan mariadb
dan mengembalikan hasilnya.
sudo docker search mariadb
Centang gambar apa pun yang ingin Anda gunakan untuk menginstal MariaDB. Demo ini menggunakan gambar resmi bernama mariadb karena terpelihara dengan baik.
Kolom RESMI menunjukkan status OK jika gambar adalah gambar resmi. Jika gambar tidak memiliki status OK, gambar tersebut disumbangkan oleh pengembang komunitas. Dalam hal ini, Anda harus menghubungi pengembang jika Anda memiliki masalah dengan gambar.

6. Sekarang jalankan docker pull
perintah untuk mengunduh gambar yang Anda pilih (pada langkah lima) dari repositori Docker. Perintah ini mengunduh (pull
) gambar yang dipilih dari repositori resminya dan menyimpannya di mesin lokal Anda.
sudo docker pull mariadb
Saat perintah selesai, Anda akan mendapatkan versi stabil terbaru dari gambar MariaDB di server Anda, seperti yang ditunjukkan di bawah ini.

Jika Anda lebih suka menginstal versi sebelumnya, Anda dapat menggunakan tag yang tersedia untuk gambar itu. Navigasikan ke Tag gambar kolom di dockerhub untuk melihat semua versi, lalu jalankan perintah docker pull dan tentukan versi yang tepat, seperti yang ditunjukkan di bawah ini. sudo docker tarik mariadb:10.2
7. Terakhir, jalankan docker images
perintah untuk membuat daftar semua gambar yang ada di server Anda. Pada titik ini, Anda harus memiliki image MariaDB Docker yang valid di server Anda.
sudo docker images
Di bawah ini, Anda dapat melihat mariadb adalah nama dari gambar buruh pelabuhan dengan tag sebagai terbaru.

Membuat MariaDB Container untuk menjalankan server MariaDB Lokal
Sekarang Anda memiliki gambar MariaDB di server Anda, Anda dapat menjalankan wadah menggunakan gambar itu. Container adalah lingkungan runtime yang terisolasi, terkontrol sumber daya, dan portabel yang berjalan di atas sistem operasi.
Anda harus terlebih dahulu membuat opt/mariadb/backup baru direktori di server Anda untuk menyimpan file cadangan yang akan Anda buat di demo ini. Mencadangkan data Anda di lingkungan produksi sangat penting sebelum membuat perubahan jika terjadi kesalahan.
Saat Anda mengubah volume internal penampung, perubahan itu akan disalin ke direktori host yang dipetakan. Jadi untuk menyimpan salinan cadangan semua data container, Anda akan membuat volume di server lokal.
1. Jalankan perintah di bawah ini untuk membuat opt/mariadb/backup
direktori. -p
option memastikan bahwa direktori induk ada sebelum membuat direktori ini.
Jika salah satu direktori induk di jalur tidak ada, perintah akan gagal.
sudo mkdir -p opt/mariadb/backup

2. Selanjutnya, jalankan docker run
perintah di bawah ini untuk membuat wadah Docker dari mariadb
gambar. Perintah ini melakukan hal berikut:
- Peta (
-v
) direktori default untuk menyimpan data MariaDB (/var/lib/mysql
) pada wadah Docker Anda di direktori Host Anda (/opt/mariadb/backup
).
- Mendeklarasikan variabel lingkungan MariaDB (
-e
)MYSQL_ROOT_PASSWORD
untuk menyimpan kata sandi root untuk server MariaDB. Pastikan untuk menggantiata123
dengan sandi aman Anda.
- Memberitahu Docker untuk memulai container dalam mode terpisah (
-d
), sehingga wadah berjalan di latar belakang. Melakukannya memungkinkan Anda meninggalkan sesi saat ini dan terus bekerja saat penampung ini berjalan di latar belakang. Jika tidak, Anda akan mendapatkan prompt kosong, dan Anda harus mematikan container yang sedang berjalan.
- Menentukan nama wadah (
--name mariadbata
) untuk membuat. Anda dapat menggantimariadbata
dengan nama unik pilihan Anda.
- Menampilkan port MariaDB default 3306 ke mesin host (
-p 3306:3306
) (di mana layanan MariaDB mendengarkan koneksi klien Anda). Dalam kasus server produksi, Anda akan memetakan port default ke port produksi. Tapi Anda bisa mengganti3306
dengan beberapa nomor port produksi lainnya.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb
Pada titik ini, wadah dibuat dan berjalan di latar belakang, tetapi Anda tidak akan pernah bisa terlalu yakin. Jadi, Anda akan memverifikasi penampung di langkah berikutnya.

3. Jalankan docker ps
perintah untuk memverifikasi apakah wadah Docker Anda aktif atau tidak.
sudo docker ps
Anda dapat melihat di bawah bahwa wadah mariadbata telah Up sejak 7 menit yang lalu, mendengarkan di port 3306 di semua antarmuka host. Anda juga dapat melihat ID (3a7fa779b559) penampung.
Anda dapat menggunakan ID unik ini untuk menghubungkan ke penampung, membuat daftar penampung, menghentikan penampung, atau menghapus penampung.
4. Sekarang, jalankan docker exec
perintah di bawah ini untuk memeriksa versi server MariaDB di dalam mariadbata
wadah.
sudo docker exec -it mariadbata mysql -V
Pada saat penulisan, versi terbaru mariadb adalah 10.6.5, seperti yang ditunjukkan di bawah ini, dan versi Anda mungkin berbeda. Karena MariaDB adalah cabang dari MySQL, Docker menggunakan klien mysql sebagai klien default untuk berinteraksi dengan layanan MariaDB yang ditunjukkan di bawah ini.

5. Jalankan perintah di bawah ini untuk masuk ke shell MariaDB (/bin/bash
).
sudo docker exec -it mariadbata /bin/bash
Perubahan prompt dari shell Ubuntu ke shell MariaDB, seperti yang ditunjukkan di bawah ini.
Anda dapat melihat di bawah ID penampung (3a7fa779b559) yang Anda lihat di langkah ketiga. Melihat ID penampung di prompt menunjukkan bahwa Anda sedang berada di dalam penampung mariadbata.

Saat berada di dalam wadah, Anda dapat menjalankan perintah apa pun dengan awalan sudo karena Anda sekarang adalah pengguna root wadah ini.
Misalnya, Anda dapat menjalankan perintah apt update di bawah ini untuk memperbarui database paket di dalam wadah tanpa awalan sudo.
apt update -y

6. Terakhir, jalankan exit
perintah untuk meninggalkan shell MariaDB dan kembali ke shell host Ubuntu Anda.
exit

Mengakses MariaDB Shell dari Terminal Host
Anda juga dapat mengakses shell MariaDB langsung dari terminal host dengan menginstal klien MariaDB di host. Melakukannya sangat membantu dalam situasi di mana Anda tidak ingin beralih ke shell container setiap saat.
1. Jalankan apt install
perintah di bawah ini untuk menginstal klien MariaDB di host Ubuntu Anda.
sudo apt install -y mariadb-client

2. Selanjutnya, jalankan docker inspect
perintah di bawah ini untuk menemukan alamat IP container yang sedang berjalan.
sudo docker inspect container-name | grep IPAddress

3. Sekarang jalankan mysql
perintah di bawah ini untuk terhubung ke instance database dari host Anda (-h
) dengan nama pengguna Anda (root
) dan kata sandi (-p
). Ingatlah untuk mengganti host_ip
dengan alamat IP wadah Docker Anda yang sedang berjalan.
sudo mysql -u root -p -h host_ip
4. Masukkan sandi yang Anda buat sebelumnya (ata123 ) di langkah kedua saat diminta, dan Anda akan disajikan dengan prompt klien MariaDB, seperti yang ditunjukkan di bawah ini.
Anda kemudian dapat menjalankan kode SQL apa pun yang Anda perlukan untuk dijalankan di server MariaDB.

5. Terakhir, jalankan ls
perintah di bawah ini untuk membuat daftar file cadangan (opt/mariadb/backup
) dari wadah MariaDB.
ls -l opt/mariadb/backup
Anda akan melihat daftar file serupa di bawah ini. Output menunjukkan Anda telah berhasil membuat cadangan wadah mariadbata. Anda dapat menyalin file ke lokasi lain di host Anda jika diperlukan.

Menghentikan dan Menghapus Penampung
Mungkin Anda ingin mengosongkan sumber daya RAM atau CPU. Jika demikian, Anda dapat menghentikan container dengan menjalankan docker stop
perintah dan menentukan ID penampung atau nama penampung.
1. Jalankan salah satu perintah di bawah ini untuk menghentikan container tertentu.
# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559
Pada titik ini, penampung dihentikan tetapi akan tetap hidup di host Anda, dan data tetap ada.

2. Sekarang, jalankan docker ps
perintah di bawah ini untuk mendaftar semua (-a
) wadah.
docker ps -a
Seperti yang Anda lihat di bawah, penampung masih ditampilkan tetapi dalam keadaan Keluar, yang menunjukkan penampung dihentikan.

3. Terakhir, jalankan perintah di bawah ini untuk menghapus (rm
) wadah yang dihentikan (mariadbata
). Kemampuan untuk menghapus container sangat berguna ketika image Docker mungkin tidak memenuhi kebutuhan Anda, atau Anda hanya ingin memulai dari awal.
Perhatikan bahwa Anda harus menghentikan container terlebih dahulu sebelum menghapusnya dengan perintah docker rm.
sudo docker rm mariadbata
Jika Anda lebih suka menghapus seluruh penampung dengan volume datanya untuk menghemat sumber daya Anda, tambahkan opsi -v dengan perintah sudo docker seperti di bawah ini.
sudo docker rm -v mariadbata

Sekarang jalankan kembali perintah docker ps di bawah ini untuk membuat daftar semua container untuk memverifikasi container telah dihapus sepenuhnya.
docker ps -a
Seperti yang Anda lihat di bawah, mariadbata container hilang bersama semua datanya.

Kesimpulan
Dalam tutorial ini, Anda telah belajar membuat wadah MariaDB Docker di mesin host Ubuntu Anda. Anda juga belajar membuat penyimpanan persisten untuk container Docker menggunakan container volume data untuk mencadangkan data container.
Pada titik ini, Anda sekarang dapat membuat dan mengelola wadah MariaDB Docker Anda sendiri di Ubuntu.
Sekarang, mengapa tidak membangun alur kerja Buddy CI/CD menggunakan wadah MariaDB Cocker sebagai database Anda dengan pengetahuan baru ini? Atau bahkan membuat layanan MariaDB untuk aplikasi Anda?