Bu repo Ubuntu üzərində Docker konteynerində SQL Server-in quraşdırılması və Tailscale vasitəsilə müxtəlif şəbəkələrdən təhlükəsiz şəkildə qoşulma prosesini izah edir. Mobil cihazlardan qoşulmaq da mümkündür.
- Tələblər
- Docker Quraşdırılması
- SQL Server Konteynerinin Yaradılması
- Tailscale Quraşdırılması
- SQL Server İstifadəçi İdarəetməsi
- Qoşulma və Test
- Faydalı Əmrlər
- Təhlükəsizlik Tövsiyələri
- Əlavə Resurslar
- Ubuntu 20.04 və ya daha yeni versiya
- Minimum 2GB RAM
- 10GB boş disk sahəsi
- İnternet bağlantısı
- sudo icazələri
1. Docker APT repository quraşdırın
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update2. Docker paketlərini quraşdırın
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin3. Docker-in işlədiyini yoxlayın
- Status yoxlayın
sudo systemctl status docker- İşə salın
sudo systemctl start docker- Test edin
sudo docker run hello-world1. Docker Compose faylı yaradın
- Layihə qovluğu yaradın:
mkdir -p ~/sql-server
cd ~/sql-server- docker-compose.yml faylı yaradın:
nano docker-compose.yml- Aşağıdakı məzmunu əlavə edin:
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: sqlserver
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=YourStrong@Password123
- MSSQL_PID=Developer
ports:
- "1433:1433"
volumes:
- sqlserver_data:/var/opt/mssql
restart: unless-stopped
networks:
- sql_network
volumes:
sqlserver_data:
driver: local
networks:
sql_network:
driver: bridge2. Konteyneri işə salın
sudo docker compose up -d3. SQL Server-in hazır olduğunu yoxlayın
# Statusu yoxlayın
sudo docker compose ps
# Logları izləyin
sudo docker compose logs -f sqlserver- "SQL Server is now ready for client connections" mesajını gözləyin (10-20 saniyə).
- Tailscale fərqli şəbəkələrdən təhlükəsiz qoşulma üçün istifadə olunur.
1. Ubuntu-da (SQL Server VM)
- Tailscale quraşdırın
curl -fsSL https://tailscale.com/install.sh | sh- İşə salın
sudo tailscale up- IP ünvanını öyrənin
tailscale ip -4- IP ünvanını qeyd edin (məsələn: 100.64.x.x)
2. Digər cihazlarda Windows / Mac / Linux:
- Tailscale saytından yükləyin
- Quraşdırın və eyni hesabla giriş edin
Android / iOS:
- App Store və ya Google Play-dən Tailscale yükləyin
- Eyni hesabla giriş edin
SQL Server Management Studio (SSMS) ilə
- SSMS-də qoşulun:
- Server: localhost (lokal) və ya Tailscale IP
- Authentication: SQL Server Authentication
- Username: sa
- Password: docker-compose.yml-də təyin etdiyiniz şifrə
- New Query açın və aşağıdakı SQL-i çalışdırın:
-- Yeni istifadəçi yaradın
CREATE LOGIN username WITH PASSWORD = 'YourStrong@Password123';
GO
-- Sysadmin icazəsi verin (tam icazə)
ALTER SERVER ROLE sysadmin ADD MEMBER username;
GO
-- Master database
USE master;
GO
CREATE USER username FOR LOGIN username;
GO
-- AdventureWorks2022 (əgər varsa)
USE AdventureWorks2022;
GO
CREATE USER usernmae FOR LOGIN username;
GO
ALTER ROLE db_owner ADD MEMBER username;
GO
-- İcazələri yoxlayın
SELECT
p.name AS username,
r.name AS role_name
FROM sys.server_role_members srm
JOIN sys.server_principals p ON srm.member_principal_id = p.principal_id
JOIN sys.server_principals r ON srm.role_principal_id = r.principal_id
WHERE p.name = 'username';
GO- Terminaldan (sqlcmd ilə)
sqlcmd quraşdırın
sudo apt install mssql-tools unixodbc-dev/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123'- Yuxarıdakı SQL əmrlərini çalışdırın
Eyni Şəbəkədən (Eyni Wi-Fi/LAN) Qoşulma məlumatları:
- Host: Ubuntu VM-in lokal IP-si (məsələn: 192.168.1.100)
- Port: 1433
- Username: username və ya sa
- Password: təyin etdiyiniz şifrə
Fərqli Şəbəkədən (Tailscale ilə) Qoşulma məlumatları:
- Host: Tailscale IP (məsələn: 100.64.x.x)
- Port: 1433
- Username: username və ya sa
- Password: təyin etdiyiniz şifrə
Test sorğuları
-- Database-ləri siyahıya alın
SELECT name FROM sys.databases;
GO
-- Yeni database yaradın
CREATE DATABASE TestDB;
GO
-- Database-ə keçin
USE TestDB;
GO
-- Test table yaradın
CREATE TABLE Users (
ID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(100),
Email NVARCHAR(100)
);
GO
-- Data əlavə edin
INSERT INTO Users (Name, Email) VALUES ('Test User', '[email protected]');
GO
-- Data oxuyun
SELECT * FROM Users;
GOSQL Server-ə mobil cihazlardan da qoşulmaq mümkündür. Bunun üçün Android və iOS üçün mövcud SQL tətbiqlərindən istifadə edə bilərsiniz.
Tətbiq nümunələri:
- Android:
SQL Client,DB Client,SQLTool Pro,RemoDB SQL Client MySQL, MsSQL - iOS:
DB Client,DBeaver Mobile
Qoşulma məlumatları:
-
Server: Tailscale IP (məs.: 100.64.x.x)
-
Port: 1433
-
Username: sa və ya yaratdığınız istifadəçi
-
Password: şifrəniz
Tətbiqdə New Connection → SQL Server seçərək bu məlumatlarla qoşula bilərsiniz.
- Konteyneri işə salmaq
sudo docker compose up -d- Dayandırmaq
sudo docker compose down- Yenidən başlatmaq
sudo docker compose restart- Statusu yoxlayın
sudo docker compose ps- Logları görün
sudo docker compose logs -f sqlserver- Container-ə daxil olun
sudo docker exec -it sqlserver /bin/bash- sqlcmd ilə qoşulun
sudo docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123'- Database-ləri görün (birbaşa)
sudo docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123' -Q "SELECT name FROM sys.databases;"- Status yoxlayın
tailscale status- IP ünvanını görün
tailscale ip -4- Yenidən qoşulun
sudo tailscale up- Çıxış edin
sudo tailscale downBackup
- Database backup
BACKUP DATABASE TestDB
TO DISK = '/var/opt/mssql/data/TestDB.bak'
WITH FORMAT, COMPRESSION;
GO- Backup faylını çıxarın
sudo docker cp sqlserver:/var/opt/mssql/data/TestDB.bak ~/TestDB.bak- Backup faylını konteynerə köçürün
sudo docker cp ~/TestDB.bak sqlserver:/var/opt/mssql/data/- Database restore
RESTORE DATABASE TestDB
FROM DISK = '/var/opt/mssql/data/TestDB.bak'
WITH REPLACE;
GO- UFW ilə port 1433-ü açın
sudo ufw allow 1433/tcp
sudo ufw reload- UFW statusunu yoxlayın
sudo ufw status- Logları yoxlayın
sudo docker compose logs sqlserver- Yenidən başladın
sudo docker compose restart- Firewall yoxlayın:
sudo ufw status- SQL Server hazırdırmı:
sudo docker compose logs -f sqlserver | grep "ready"- Port açıqdırmı:
sudo netstat -tulpn | grep 1433ALTER LOGIN sa WITH PASSWORD = 'NewStrong@Password456';
GO✅ Güclü şifrələr istifadə edin (minimum 8 simvol, böyük/kiçik hərf, rəqəm, simvol)
✅ sa istifadəçisi əvəzinə fərqli istifadəçilər yaradın
✅ Firewall konfiqurasiyasını düzgün təyin edin
✅ Mütəmadi backup alın
✅ SQL Server-i güncel saxlayın
✅ Tailscale istifadə edərək internetdən birbaşa port açmayın
Xəyyam Əhmədov Linkedin