Menjalankan Mariadb dalam LXD Container

Menjalankan Mariadb dalam LXD Container

Menjalankan mariadb dengan Docker container sudah hal yang umum, sangat sederhana, modal docker run. Beda lagi dengan menjalankan mariadb dalam lxd container karena harus install paket layaknya bare metal atau virtual machine. Yep, lxd container full OS, docker container per APP.

Launch lxd container ubuntu dan beri nama mariadb untuk container tersebut: lxc launch ubuntu-18.04 mariadb

Kok imagenya ubuntu-18.04? bukan ubuntu:18.94 atau images:ubuntu? Itu karena sebelumnya saya sudah download image ubuntu, jadi sudah punya di lokal gak perlu ambil dari remote. Nah ubuntu-18.04 ini hanya alias.

1
2
3
4
5
6
7
8
lxc image list        
+--------------+--------------+--------+-----------------------------------------------+--------+----------+------------------------------+
|    ALIAS     | FINGERPRINT  | PUBLIC |                  DESCRIPTION                  |  ARCH  |   SIZE   |         UPLOAD DATE          |
+--------------+--------------+--------+-----------------------------------------------+--------+----------+------------------------------+
| archlinux    | db7f17046b8d | no     | Archlinux current amd64 (20190901_04:18)      | x86_64 | 150.03MB | Sep 2, 2019 at 1:29am (UTC)  |
+--------------+--------------+--------+-----------------------------------------------+--------+----------+------------------------------+
| ubuntu-18.04 | 2dd611e2689a | no     | ubuntu 18.04 LTS amd64 (release) (20190813.1) | x86_64 | 177.60MB | Aug 31, 2019 at 4:51am (UTC) |
+--------------+--------------+--------+-----------------------------------------------+--------+----------+------------------------------+

Setelah selesai launch, jika kita list container kita akan muncul nama mariadb:

1
2
3
4
5
6
7
8
lxc list
+------------+---------+-----------------------+-----------------------------------------------+------------+-----------+
|    NAME    |  STATE  |         IPV4          |                     IPV6                      |    TYPE    | SNAPSHOTS |
+------------+---------+-----------------------+-----------------------------------------------+------------+-----------+
| haproxy    | RUNNING | 10.174.126.81 (eth0)  | fd42:deee:e13a:f247:216:3eff:feeb:91ea (eth0) | PERSISTENT | 0         |
+------------+---------+-----------------------+-----------------------------------------------+------------+-----------+
| mariadb    | RUNNING | 10.174.126.147 (eth0) | fd42:deee:e13a:f247:216:3eff:fe84:d412 (eth0) | PERSISTENT | 0         |
+------------+---------+-----------------------+-----------------------------------------------+------------+-----------+

Selanjutnya layaknya bare metal atau vm, lakukan update repo dan install mariadb:

1
lxc exec mariadb -- apt update

Selesai update repo, kita install mariadb:

1
lxc exec mariadb -- apt install mariadb-server

Jalankan mysql_secure_installation

1
lxc exec mariadb -- mysql_secure_installation

Oh ya, selain menggunakan lxc exec, kita juga bisa menggunakan lxc console untuk masuk ke console container, tapi kita harus bikin user dulu dengan cara

1
lxc exec mariadb -- adduser derp

Setelah itu silakan login ke console container mariadb dengan user derp

Seleasi, silakan lanjutkan ritual umum seperti securing mariadb, bikin user, bikin db, dst. Kalau ingin expose port mariadb keluar, silakan edit bind address mariadbnya kemudian gunakan lxd proxy sepert deijelaskan di artikelku disini: expose port lxd container ke luar host.