Instal dan Jalankan MariaDB sebagai Docker Container

Selamat datang di tutorial dasar kami tentang cara menginstal dan menjalankan MariaDB sebagai wadah Docker. Menurut situs web Docker, “ Docker adalah platform terbuka untuk mengembangkan, mengirim, dan menjalankan aplikasi ”. Sebuah kontainer di sisi “ adalah unit standar perangkat lunak yang paket kode dan seluruh dependensinya sehingga aplikasi berjalan dengan cepat dan andal dari satu lingkungan komputasi yang lain. Gambar kontainer Docker adalah paket perangkat lunak yang ringan, mandiri, dan dapat dieksekusi yang mencakup semua yang diperlukan untuk menjalankan aplikasi: kode, runtime, alat sistem, pustaka sistem, dan pengaturan “.

Instal dan Jalankan MariaDB sebagai Docker Container

Instal Mesin Docker

Sebelum Anda dapat menginstal dan menjalankan MariaDB sebagai wadah buruh pelabuhan, Anda harus terlebih dahulu menginstal Mesin Docker di sistem Anda. Ikuti tautan di bawah ini untuk menginstal Docker Engine pada sistem CentOS 8/Ubuntu 20.04;

Instal dan Gunakan Docker CE di CentOS 8

Instal Docker CE di Ubuntu 20.04

Download Gambar MariaDB Docker

Setiap wadah buruh pelabuhan didasarkan pada gambar tertentu. Gambar Docker berisi semua yang diperlukan untuk menjalankan wadah dan oleh karena itu merupakan serangkaian instruksi yang mendefinisikan cara aplikasi dijalankan.

Anda dapat membuat gambar Docker Anda sendiri atau cukup menggunakan gambar yang telah dibuat komunitas. Anda dapat menemukan gambar di Docker Hub.

Dalam tutorial ini, kita akan memanfaatkan image Docker yang tersedia di komunitas.

Cari Gambar MariaDB Docker

Pertama, Anda perlu mengidentifikasi nama Gambar Docker MariaDB tertentu. Untuk mencari gambar di hub docker, cukup jalankan perintah di bawah ini;

docker search mariadb

Anda akan mendapatkan banyak gambar MariaDB yang telah dibuat;

NAME DESCRIPTION STARS OFFICIAL AUTOMATED mariadb MariaDB is a community-developed fork of MyS… 3572 [OK] linuxserver/mariadb A Mariadb container, brought to you by Linux… 151 bitnami/mariadb Bitnami MariaDB Docker Image 120 [OK] toughiq/mariadb-cluster Dockerized Automated MariaDB Galera Cluster … 41 [OK]...

Biasanya, gambar tanpa awalan dianggap sebagai gambar hub buruh pelabuhan resmi, stabil dan dipertahankan. Ini juga mengandung [OK] pada Official kolom. Oleh karena itu, kami akan menarik gambar pertama dari daftar di atas.

Download Gambar MariaDB Docker dari Docker Hub

Untuk mengdownload Gambar Docker, Anda menggunakan perintah. Dalam hal ini, nama gambar kami adalah.docker pull <name-of-the-image>mariadb

docker pull mariadb

Perintah mengdownload gambar ke sistem Anda, jika belum ada.

Secara default, saat Anda menarik gambar buruh pelabuhan, versi terbarunya didownload. Jika Anda perlu mengdownload Gambar Docker MariaDB versi lain, misalnya Gambar Docker MariaDB 10.3, cukup gunakan perintah;

docker pull mariadb:10.3

Anda dapat melihat berbagai macam tag yang dapat Anda gunakan di halaman Docker Hub MariaDB.

Daftar Gambar Docker yang Didownload

Anda dapat membuat daftar gambar yang tersedia secara lokal menggunakan docker imagesperintah.

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE mariadb latest 8075b7694a2d 8 days ago 407MB

Kami telah mengdownload Gambar Docker MariaDB terbaru.

Menjalankan MariaDB Docker Container

Setelah Anda memiliki gambar Docker, Anda kemudian dapat membuat dan menjalankan wadah buruh pelabuhan berdasarkan gambar tersebut. adalah perintah Docker untuk menjalankan container Docker.docker run <options> <image-name>

Saat menjalankan wadah MariaDB, Anda perlu menentukan salah satu variabel lingkungan berikut:

  • MYSQL_ROOT_PASSWORD: menentukan password yang akan ditetapkan untuk MariaDB  root(wajib).
  • MYSQL_ALLOW_EMPTY_PASSWORD: menetapkan password kosong untuk akun user root MariaDB (opsional). Mengambil nilai, ya atau tidak
  • MYSQL_RANDOM_ROOT_PASSWORD: Menetapkan password acak untuk akun user root MariaDB (opsional). Mengambil nilai, ya atau tidak

Dalam kasus kami di sini, nama gambarnya adalah, mariadb( dengan latestmenjadi tag );

docker run --name mariadbdemo -e MYSQL_ROOT_PASSWORD=password -d mariadb

Perintah di atas pada dasarnya membuat dan menjalankan (di latar belakang, -d) wadah MariaDB Docker berdasarkan versi gambar terbaru yang tersedia, setel password root basis data MariaDB ke password( -e MYSQL_ROOT_PASSWORD=password) dan nama wadahnya sebagaimariadbdemo (–name mariadbdemo, nama acak biasanya ditetapkan untuk wadah jika Anda tidak menentukan namanya).

Jika Anda memiliki Gambar MariaDB Docker versi lain, Anda dapat menentukan tag untuk menjalankan penampung berdasarkan gambar spesifik tersebut. Misalnya, dengan asumsi kami memiliki gambar MariaDB 10.4 dan kami ingin menjalankan wadah berdasarkan gambar itu, Anda dapat menentukan tag sebagai, mariadb:10.4.

 docker run --name mariadbdemo -d -e MYSQL_ROOT_PASSWORD=password mariadb:10.4

Memeriksa docker run –help untuk lebih banyak pilihan.

Daftar Menjalankan Kontainer

Setelah Anda menjalankan sebuah wadah, Anda dapat membuat daftarnya menggunakan docker psperintah.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ce03099cfffa mariadb "docker-entrypoint.s…" 43 seconds ago Up 39 seconds 3306/tcp mariadbdemo

Untuk membuat daftar semua container yang berjalan dan yang dihentikan, gunakan docker ps -aperintah.

Untuk mendapatkan ID penampung yang sedang berjalan saja;

docker ps -q

Memeriksa Log Kontainer MariaDB

Anda dapat menggunakan docker logs <name-or-container-id>perintah;

docker logs mariadbdemo

Atau

docker logs ce03099cfffa

Mengakses MariaDB Docker Container

Wadah buruh pelabuhan MariaDB Anda sekarang berjalan di latar belakang. Anda dapat mengaksesnya dengan:

  • Meluncurkan shell interaktif wadah
  • Masuk ke wadah MariaDB Docker menggunakan client mysql dari Host Anda melalui jaringan buruh pelabuhan.

Untuk meluncurkan bash shell interaktif untuk wadah buruh pelabuhan MariaDB, gunakan file docker exec -it <name-of the container|container-id> <shell>.

docker exec -it mariadbdemo bash

Ini membawa Anda ke wadah bash shell interaktif;

[email protected]:/#

Anda juga dapat masuk ke wadah MariaDB Anda menggunakan client mysql di host Anda.

Untuk ini, Anda perlu menginstal client MySQL. Misalnya, pada sistem Ubuntu, Anda dapat menginstal client MySQL dengan menjalankan perintah

apt install mysql-client

Selanjutnya, dapatkan alamat IP yang ditetapkan untuk wadah MariaDB Anda. Untuk mendapatkan alamat IP container, gunakan docker inspect <name-of-the-container|container-id>perintah yang memberikan detail lengkap tentang container.

docker inspect mariadbdemo | grep IPAddress
 "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2",

Dalam hal ini, wadah MariaDB kami diberi alamat IP dari 172.17.0.2.

Untuk menggunakan client host MySQL untuk terhubung ke wadah kami;

mysql -u root -p -h 172.17.0.2

Perintah mengasumsikan bahwa wadah mendengarkan pada port default, 3306.

Anda harus menggunakan password yang Anda tentukan dengan MYSQL_ROOT_PASSWORD variabel saat menjalankan wadah di a
tas.

Enter password: password Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 5 Server version: 5.5.5-10.5.4-MariaDB-1:10.5.4+maria~focal mariadb.org binary distribution Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>

Di dalam shell, Anda sekarang dapat mengelola MariaDB Anda seperti yang Anda lakukan saat menjalankan sebuah host.

CATATAN: Alamat IP yang ditetapkan ke wadah buruh pelabuhan Anda bersifat dinamis dan jika Anda me-restart wadah, itu akan diberi alamat IP baru/berbeda dalam jaringan buruh pelabuhan.

Mengakses MariaDB Docker Container Secara Eksternal

Jika Anda memiliki beberapa aplikasi eksternal yang perlu mengakses database Anda yang berjalan di wadah MariaDB, Anda perlu mengekspos port wadah untuk eksternal melalui sistem host. Secara default, wadah hanya dapat diakses di dalam sistem host

Misalnya, wadah MariaDB kami mendengarkan pada port default 3306.

Jika Anda memeriksa port mendengarkan di host Anda untuk port MariaDB, Anda tidak akan menemukan apapun;

ss -altnp | grep 3306

Untuk mengekspos port container, gunakan docker run opsi, -p <host-port>:<container-port>. Lihat contoh perintah di bawah ini untuk mengekspos port kontainer MariaDB 3306 melalui host menggunakan port yang sama;

docker run --name mariadbdemoport -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mariadb

Jika Anda perlu menggunakan nama yang sama untuk wadah, cukup hentikan wadah yang ada dan hapus dan luncurkan kembali wadah baru menggunakan nama yang sama.

Mari kita verifikasi eksposur port

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3489ce131cce mariadb "docker-entrypoint.s…" 4 minutes ago Up 2 seconds 0.0.0.0:3306->3306/tcp mariadbdemoport ce03099cfffa mariadb "docker-entrypoint.s…" About an hour ago Up 40 seconds 3306/tcp mariadbdemo

Jika Anda memeriksa PORTS kolom, Anda menyadari untuk kontainer baru kami, port kontainer terbuka pada port 3306 di host dan mendengarkan di semua interface;

Jika Anda perlu menentukan alamat IP host, gunakan -p host-IP-address:Port:<container-port>.

Memeriksa port mendengarkan pada host lagi;

ss -altnp | grep 3306
LISTEN 0 4096 *:3306 *:*

Jika Anda perlu memetakan port container ke port host dinamis, gunakan opsi;

-p <container-port>
docker run --name mariadbdemo-dport -p 3306 -e MYSQL_ROOT_PASSWORD=password -d mariadb
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bee9f036aedd mariadb "docker-entrypoint.s…" 8 seconds ago Up 3 seconds 0.0.0.0:32768->3306/tcp mariadbdemo-dport 3489ce131cce mariadb "docker-entrypoint.s…" 12 minutes ago Up 7 minutes 0.0.0.0:3306->3306/tcp mariadbdemoport ce03099cfffa mariadb "docker-entrypoint.s…" About an hour ago Up 8 minutes 3306/tcp mariadbdemo

Seperti yang Anda lihat, port container diekspos pada port dinamis 32768.

Anda selalu dapat menemukan port dinamis yang dipetakan oleh port container menggunakan docker portperintah;

docker port mariadbdemo-dport
3306/tcp -> 0.0.0.0:32768

Mengatur Volume Data Persisten untuk MariaDB Docker Container

Ketika sebuah wadah dihapus, semua data yang telah ditulis ke volume internalnya juga dihapus. Untuk memastikan data tetap ada di seluruh penghapusan container, Anda dapat memetakan volume internal container MariaDB Docker ke beberapa direktori host.

Untuk mengikat volume Docker internal ke volume host eksternal, gunakan -v <host-directory>:<container-directory>opsidocker run memerintah.

Direktori data default untuk wadah MariaDB adalah /var/lib/mysql.

Misalnya, jika saya ingin data wadah ditulis ke direktori Host saya /opt/mariadb/data, yang pertama buat direktori dan jalankan wadah yang memetakan direktori data menggunakan -vopsi.

mkdir -p /opt/mariadb/data
docker run --name mariadbdemo-volume -v /opt/mariadb/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mariadb

Oleh karena itu, setiap data container yang ditulis ke direktori data container, /var/lib/mysql, akan ditulis ke direktori data pada host, /opt/mariadb/datapada saat yang bersamaan.

Berhenti, Jeda, Mulai Ulang Hapus Kontainer Docker

Untuk menghentikan container yang sedang berjalan, gunakan docker stopperintah;

docker stop [option] <name|id>
docker stop mariadbdemo

Anda dapat menghentikan semua wadah menggunakan id mereka;

docker stop $(docker ps -q)

Setelah Anda selesai dengan wadah, Anda dapat memilih untuk menghapusnya;

docker rm [option] <name|id>
docker rm mariadbdemo

Untuk memaksa penghapusan;

docker rm --force mariadbdemo

Untuk menjeda wadah;

docker pause mariadbdemo

Untuk memulai kembali;

docker restart mariadbdemo

Untuk membuat daftar volume buruh pelabuhan;

docker volume ls

Temukan volume wadah buruh pelabuhan tertentu menggunakan docker inspectperintah.

Hapus volume tertentu;

docker volume rm volume-name

Itu menandai akhir dari panduan kami tentang cara menginstal dan menjalankan MariaDB sebagai Docker Container.

Author: fungsi