Windows ile Docker kullanımı
Docker kelimesini ilk kez duyanlar için biraz bilgi verelim. VirtualBox'a benzeyen ve konteynerlerden oluşan bir yapıdır. Farklı olarak, VirtualBox'da her yazılım projesi için ayrı bir işletim sistemi kurmak gerekirken, Docker'da buna gerek yoktur. Her proje, tek bir işletim sistemi içinde farklı konteynerlerde bağımsız (izole) olarak çalışabilirler. Bu nedenle, Docker daha performanslı çalışır. Farklı kullanım amaçları olsada benim kullanım amacım şu şekilde.. Örneğin bir yazılım projesi için Mysql (veritabanı) sunucu ihtiyacınız var. Bu amaçla, hemencecik dockerhub'da bulunan resmi Mysql imajını kullanabilirsiniz. Yani, bilgisayara Mysql indirip kurmanıza gerek yok, kurulmuşu var zaten :)
Ya da apache-php-mysql çalışmak istediniz.. Docker ile birkaç dakikada ortam hazır olurken, diğer türlü saatleriniz boş yere harcanabilir...
Docker kullanmak için Docker Desktop programını kullanmak gerekiyor. Şart değil ama işleri kolaylaştırıyor.
Docker Desktop kurulumu
Docker Desktop programının son sürümünü buradan indirebilirsiniz. Yalnız durun bir saniye, bu programın kurulumunu yapmadan önce başka ayarlar yapmak gerekiyor. Ctrl+Shift+Esc ile Görev Yöneticisini açın. Performans sekmesine gelin. CPU içinde sağ alt köşede Sanallaştırma: Etkin görülmelidir. Aksi halde bilgisayarın BIOS ayarlarına girip VTx olarak geçen sanallaştırma (Virtualization Technology) ayarını açmanız gerekir. Bu ayar, HP bilgisayarda Security > System Security menüsünde bulunuyor.
Windows arama çubuğuna "Windows özelliklerini aç veya kapat" yazın. Resimde görülen, Linux için Windows Alt sistemi kutucuğunu işaretleyin. Tamam butonuna tıklayınca bu özellik (wsl) kurulacak ve bilgisayarı yeniden başlatmanız gerekecektir. Komut satırı veya komut istemi (cmd) penceresinde wsl -l -v yazınca versiyon olarak 2 görmeniz gerekiyor. (wsl2)
Wsl ismi biraz tuhaf olmuş. Windows Subsystem for Linux, yani linux için windows alt sistemi. Wsl'yi sanal makine olarak düşünün. Wsl içine Docker Desktop'un yanı sıra Ubuntu da kurulabiliyor. Bu durumda Linux Subsystem for Windows oluyor. Yani wsl isminin aslında lsw olması gerekmez miydi ? Windows zaten bilgisayarda duruyordu, linux sonradan bilgisayara geldi. Lsw pardon wsl sayesinde linux dağıtımı olan Ubuntu'yu, windows makinede kullanabiliyoruz.
Neyse, yukarıda yazdığım iki işlemi yaptıysanız (VTx aktivasyonu ve WSL kurulumu) artık Docker Desktop'u kurabilirsiniz...
Görev çubuğunda, sağ alt köşede gemicik ikonu görülecektir. İkona sağ klik yapınca en üstte Docker Desktop is running yazdığı yani programın çalıştığı belli olacaktır. Bu sırada bilgisayarda bir kasma veya yavaşlama hissederseniz, bilgisayarınız biraz eski demektir. Böyle bir durumda, Windows'u canlandırmaya yarayan ReviOS hakkında bilgi sahibi olmak için, önceki yazımı okuyabilirsiniz.
MySQL sunucuyu bir komut ile çalıştır
docker run --name some-mysql -v C:\Users\username\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql
MySQL Workbench
CREATE DATABASE test
USE test
CREATE TABLE tasks (id INT AUTO_INCREMENT PRIMARY KEY,description VARCHAR(100))
INSERT INTO tasks (description) VALUES ('Finish work'), ('Have fun');
SELECT * FROM tasks
Sunucuyu Docker'dan silelim
docker stop some-mysql
docker rm some-mysql
docker ps
Veritabanı içindeki bilgiler silinmedi
Node.js ile veritabanı bilgilerini okuyalım
mkdir mysql
cd mysql
npm init -y
npm install mysql2
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "my-secret-pw",
database: "test"
});
connection.connect((err) => {
if (err) { console.log(err); }
console.log("Mysql bağlantısı oluşturuldu.");
let sqlSorgusu = `SELECT * FROM tasks`
connection.query(sqlSorgusu, (err, results) => {
if (err) throw err;
console.log(results);
});
// Close the connection
connection.end();
});
Yorumlar
Yorum Gönder