Bu kılavuzda Mariadb 10’un yerel olarak docker ve docker compose ile nasıl çalıştırılacağını keşfedeceğiz. Mariadb 10’u makinenize kurmadan yerel olarak çalıştırmak istiyorsanız veya Mariadb’nin birden fazla sürümünü sorunsuz bir şekilde çalıştırmak istiyorsanız bu yararlı olabilir.
Önkoşullar
Takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:
- Docker yerel olarak yüklü olmalı
- Docker compose yerel olarak yüklü olmalı
- Komut satırıyla ilgili temel bilgiler
Docker run komutunu kullanma
Amacımıza ulaşmak için docker run komutunu kullanacağız. İstediğimiz Mariadb sürümü mariadb:10.7 – mariadb görüntüsünün en son sürümü.
Veri dizini oluşturun
1
|
mkdir -p ~/apps/mariadb/data
|
Konteyneri çalıştırın
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$ docker run -d \
--name my-mariadb \
-p 3306:3306 \
-v ~/apps/mariadb/data:/var/lib/mysql \
--user 1000:1000 \
-e MYSQL_ROOT_PASSWORD=S3cret \
-e MYSQL_PASSWORD=An0thrS3crt \
-e MYSQL_USER=citizix_user \
-e MYSQL_DATABASE=citizix_db \
mariadb:10.7
Unable to find image 'mariadb:10.7' locally
10.7: Pulling from library/mariadb
7b1a6ab2e44d: Pull complete
034655750c88: Pull complete
f0b757a2a0f0: Pull complete
4bbcce26bc5e: Pull complete
04f220ee9266: Pull complete
89c8a77f7842: Pull complete
d1de5652303b: Pull complete
e10058b6c45e: Pull complete
a07ac6f8b619: Pull complete
6260e28f2886: Pull complete
Digest: sha256:832c6e488f49720f484f87ee9f2cd4487321b373db07ac77037860bcd97d92bb
Status: Downloaded newer image for mariadb:10.7
75c4a2f716d9ec95fe7ca7a3c7b071755a9ec94f824e0aa17f703d831aedadd8
|
Yukarıdaki komutta:
- -d, liman işçisi konteynerinin bağımsız bir işlem olarak çalışmasını bildirir. Konteyneri arka planda çalıştırır ve konteyner kimliğini yazdırır
-p bağlantı noktası eşlemesi içindir. Container'a, konteyner portunu harici olarak açığa çıkarması talimatını veriyoruz. Konteyner bağlantı noktası 3306, ana bilgisayar bağlantı noktası 3306 ile eşlenir. Bu, hizmete localhost:3306 aracılığıyla erişilebileceği anlamına gelir.
- -v yönergesi birimleri bağlamak için kullanılır. Bizim durumumuzda /var/lib/mysql konteyner birimini ~/apps/mariadb/data ana bilgisayar yoluna monte ediyoruz. Konteynerler, çalıştığı süre boyunca verilerini içerecek olan geçici cihazlardır. Bir konteyner durdurulduğunda verileri kaybolur. Birimlerin takılması, verilerin kapsayıcı yeniden başlatıldığında yeniden kullanılabilecek bir ana bilgisayar yoluna eklenmesini sağlar.
- –user argümanı, kabı isteğe bağlı bir kullanıcıyla (root olmayan kullanıcı) çalıştırmak için kullanılır. Bu, mysqld’i belirli bir UID/GID ile çalıştırmanız gerektiğinde gerçekleşir.
- -e argümanı ortam değişkenleri içindir. Sağlanan ortam değişkenleri bir Mariadb kullanıcısı, parolası ve veritabanı oluşturmak için kullanılacaktır.
Konteynerimizin beklendiği gibi çalıştığını kontrol etmek için docker ps komutunu kullanın:
1
2
3
|
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75c4a2f716d9 mariadb:10.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp my-mariadb
|
Benim durumumda konteyner, ona verdiğimiz isim olan my-mariadb olarak çalışıyor. Etkileşimli olarak /bin/bash komutunu çalıştırırken docker exec komutunu kullanarak konteynere giriş yapabiliriz. Burada ayrıca yukarıda belirttiğimiz kimlik bilgileri ile postgtres’e giriş yapıp versiyon kontrolü yapıyoruz.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$ docker exec -it my-mariadb /bin/bash
groups: cannot find name for group ID 1000
citizix@75c4a2f716d9:/$ mysql -u citizix_user -pAn0thrS3crt
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.7.1-MariaDB-1:10.7.1+maria~focal mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select version();
+-------------------------------------+
| version() |
+-------------------------------------+
| 10.7.1-MariaDB-1:10.7.1+maria~focal |
+-------------------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]>
|
Kullanılmadığı zaman kabı temizlemeniz gerekiyorsa, şu komutu kullanarak kabı durdurabilir ve kaldırabilirsiniz:
1
2
3
4
5
|
$ docker stop my-mariadb
my-mariadb
$ docker rm my-mariadb
my-mariadb
|
Docker-compose ile aynı işlevselliği elde edebiliriz. Docker Compose, çok kapsayıcılı Docker uygulamalarını tanımlamaya ve çalıştırmaya yönelik bir araçtır. Compose ile uygulamanızın hizmetlerini yapılandırmak için bir YAML dosyası kullanırsınız.
Docker Compose, hizmeti (bizim durumumuzda Mariadb), kullanılacak görüntü, kullanıma sunulacak bağlantı noktaları, bağlanacak birimler ve ortam değişkenleri gibi özelliklerle tanımlamanıza olanak tanır.
Yukarıdaki işlevselliğe ulaşmak için docker-compose’u nasıl kullanacağımız aşağıda açıklanmıştır. Bunu docker-compose.yaml olarak kaydedin:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
version: '3.9'
services:
mariadb:
image: mariadb:10.7
ports:
- 3306:3306
volumes:
- ~/apps/mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=S3cret
- MYSQL_PASSWORD=An0thrS3crt
- MYSQL_USER=citizix_user
- MYSQL_DATABASE=citizix_db
|
Şimdi konteyneri çalıştıralım
1
2
3
|
$ docker-compose up -d
Creating network "tmp_default" with the default driver
Creating tmp_mariadb_1 ... done
|
Komutlar:
up
konteyneri çalıştırır
-d
müstakil moda geçirir
ps komutunu kullanarak kapsayıcı işlemlerini doğrulayın:
1
2
3
4
5
|
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
tmp_mariadb_1 docker-entrypoint.sh mariadbd Up 0.0.0.0:3306->3306/tcp,:::3306
->3306/tcp
|
Kapsayıcıda oturum açmak ve Mariadb’de oturum açmak için şunu kullanın:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$ docker-compose exec mariadb /bin/bash
root@07f9050cea89:/# mysql -u citizix_user -pAn0thrS3crt
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.7.1-MariaDB-1:10.7.1+maria~focal mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select version();
+-------------------------------------+
| version() |
+-------------------------------------+
| 10.7.1-MariaDB-1:10.7.1+maria~focal |
+-------------------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]>
|
Yazının orjinalini buradan okuyabilirsiniz.
Görüntüleme: 123