Giriş
Burada sadece "Docker" kullanarak MySQL veri tabanını çalıştırma örnekleri var. "Docker Compose" için Dockerfile ve MySQL yazısına bakabilirsiniz.
Docker ile MySQL'i çalıştırmak için belirtilen parametreler şöyle
MYSQL_ROOT_PASSWORD
MYSQL_DATABASE
Çalıştırılacak SQL dosyaları "docker-entrypoint-initdb.d" dizini altına kopyalanır. Bu dosyalara
01-schema.sql 02-user.sql
03-data.sql
gibi isimlere verilir
Örnek
Şöyle yaparız
docker pull mysql:5.6 docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:5.6
Örnek - SQL Çalıştırmak
Şöyle yaparız. - "docker stop mysql" yapınca container otomatik silinir.
- Çalıştırılacak SQL dosyaları "docker-entrypoint-initdb.d" dizini altına kopyalanır.
- ${PWD} hem Linux hem de PowerShell ile çalışır.
- Ayrıca mysql sunucusuna --sql-mode="ANSI_QUOTES" ile de parametre geçeriz
docker run -d -it -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=db \
--name mysql \
--rm \
-p 3306:3306 \
-v ${PWD}/schema.sql:/docker-entrypoint-initdb.d/schema.sql \
mysql:8.0 --sql-mode="ANSI_QUOTES"Örnek
Şöyle yaparız
docker run -it -e MYSQL_ROOT_PASSWORD=secretpswd \ -e MYSQL_DATABASE=blog \ --name blog-mysql \ -p 3307:3306 \ mysql:8.0
Elimizde şöyle bir mysql config dosyası olsun
$ cat mysql-conf/jiramysql/conf.d/my-custom.conf[mysqld]default-storage-engine=INNODBcharacter_set_server=utf8mb4innodb_default_row_format=DYNAMICinnodb_log_file_size=2Gsql_mode=NO_AUTO_VALUE_ON_ZERO
Çalıştırmak için şöyle yaparız
$ docker pull mysql $ sudo docker run --detach --name=jiramysql --env="MYSQL_ROOT_PASSWORD=password" --publish 6603:3306 --volume=/Users/cpandey/Development/Docker/mysql-data:/var/lib/mysql --volume=/Users/cpandey/Development/Docker/mysql-conf/jiramysql/conf.d:/etc/mysql/conf.d mysql
Bash açmak için şöyle yaparız
$ sudo docker exec -it jiramysql bash bash-4.4# mysql -uroot -ppassword mysql> ...
Mount edilen volume'lara bakmak için şöyle yaparız
$ sudo docker inspect jiramysql|grep -A 16 -i mounts
"Mounts": [
{
"Type": "bind",
"Source": "/Users/cpandey/Development/Docker/mysql-data",
"Destination": "/var/lib/mysql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Users/cpandey/Development/Docker/mysql-conf/jiramysql/conf.d",
"Destination": "/etc/mysql/conf.d",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}2. Dockerfile Dosyası Kullanımı
Örnek - SQL Çalıştırmak
Şöyle yaparız
ADD db_backup.sql docker-entrypoint-initdb.d/db_backup.sql
Örnek - SQL Çalıştırmak
Çalıştırılacak SQL "docker-entrypoint-initdb.d" dizini altına kopyalanır. Şöyle yaparız
FROM mysql:5.7.25 LABEL "Project"="vproject" LABEL "Author"="Onumaku chibuike" ENV MYSQL_ROOT_PASSWORD="vprodbpass" ENV MYSQL_DATABASE="accounts" ADD db_backup.sql docker-entrypoint-initdb.d/db_backup.sql
Hiç yorum yok:
Yorum Gönder