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