Docker ile Azure SQL Edge'i dağıtma

Bu hızlı başlangıçta Docker kullanarak Azure SQL Edge kapsayıcı görüntüsünü çekecek ve çalıştırabilirsiniz. Ardından sqlcmd ile bağlanarak ilk veritabanınızı oluşturun ve sorguları çalıştırın.

Bu görüntü Ubuntu 18.04 SQL Azure SQL Edge'den oluşur. Linux üzerinde Docker Engine 1.8+ veya Mac için Docker/Windows.

Önkoşullar

  • Desteklenen herhangi bir Linux dağıtımında Docker Engine 1.8+ veya Mac için Docker/Windows. Daha fazla bilgi için bkz. Docker'ı yükleme. Azure SQL Edge görüntüleri Ubuntu 18.04'ü temel alan bir ubuntu 18.04 docker ana bilgisayarı kullanılması önerilir.
  • Docker katman2 depolama sürücüsü. Bu, kullanıcıların çoğu için varsayılan değerdir. Bu depolama sağlayıcısını kullanmamanızı ve değiştirmeniz gerekirse, katman2'nin yapılandırılması için docker belgelerinde yer alan yönergelere ve uyarılara bakın.
  • En az 10 GB disk alanı.
  • En az 1 GB RAM.
  • Azure SQL Edge için donanım gereksinimleri.

Kapsayıcı görüntüsünü çekme ve çalıştırma

Aşağıdaki adımları başlatmadan önce, bu makalenin üst kısmında tercih ettiğiniz kabuğu (bash, PowerShell veya cmd) seçtiğinizden emin olun.

  1. Azure SQL Edge kapsayıcı görüntüsünü Microsoft Container Registry.

    • Azure SQL Edge kapsayıcı görüntüsünü çekme
      sudo docker pull mcr.microsoft.com/azure-sql-edge:latest 
      

Not

Bu makaledeki bash komutları sudo için kullanılır. macOS ve sudo Windows, gerekli olabilir. Linux'ta Docker'ı çalıştırmak için kullanmak istemiyorsanız bir Docker grubu sudo yapılandırarak kullanıcıları bu gruba ebilirsiniz. Daha fazla bilgi için bkz. Linux için yükleme sonrası adımlar.

Önceki komut, En son Azure SQL Edge kapsayıcı görüntülerini çeker. Kullanılabilir tüm görüntüleri görmek için azure-sql-egde Docker hub sayfasına bakın.

  1. Kapsayıcı görüntüsünü Docker ile çalıştırmak için bir bash kabuğundan (Linux/macOS) veya yükseltilmiş PowerShell komut isteminden aşağıdaki komutu kullanabilirsiniz.

    • Developer sürümü SQL çalışan bir Azure SQL Edge örneği başlatma

      sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge
      
    • Premium sürümü olarak çalışan bir Azure SQL Edge örneği başlatma

      sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Premium' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge
      

    Not

    PowerShell'i Windows çalıştırmak için tek tırnak yerine çift tırnak kullanın.

    Not

    Parola, Microsoft SQL Veritabanı Altyapısı varsayılan parola ilkesine uymalı, aksi takdirde kapsayıcı SQL altyapısını kuramayacak ve çalışmayı durduracak. Varsayılan olarak, parola en az 8 karakter uzunluğunda olmalı ve şu dört kümeden üçünden karakterler içermelidir: Büyük harfler, Küçük harfler, Temel 10 basamaklar ve Semboller. Docker logs komutunu yürüterek hata günlüğünü inceleyebilirsiniz.

    Aşağıdaki tabloda, önceki örnekte yer alan parametrelerin açıklaması docker run ve açıklama yer almaktadır:

    Parametre Açıklama
    -e "ACCEPT_EULA=Y" Son ACCEPT_EULA Sözleşme'nin kabulünü onaylamak için ACCEPT_EULA değişkenini herhangi bir değere ayarlayın. Azure SQL Edge görüntüsü için gerekli ayar.
    -e "MSSQL_SA_PASSWORD=yourStrong(!) Parola" En az 8 karakter uzunluğunda olan ve Azure SQL Edge parola gereksinimlerini SQL kendi güçlü parolanızı belirtin. Azure SQL Edge görüntüsü için gerekli ayar.
    -p 1433:1433 Konak ortamındaki bir TCP bağlantı noktasını (ilk değer) kapsayıcıda bir TCP bağlantı noktasıyla (ikinci değer) eşler. Bu örnekte Azure SQL Edge, kapsayıcıda TCP 1433 üzerinde dinliyor ve bu durum konakta 1433 bağlantı noktasına açık.
    --name azuresqledge Rastgele oluşturulan bir ad yerine kapsayıcı için özel bir ad belirtin. Birden fazla kapsayıcı çalıştırdıysanız, aynı adı yeniden kullanılamaz.
    -d Kapsayıcıyı arka planda çalıştırma (daemon)

    Tüm Azure SQL Edge ortam değişkenlerinin tam listesi için bkz. Azure SQL Edge'i Ortam Değişkenleri ile Yapılandırma. Microsoft Edge Kapsayıcıları için Azure'ı yapılandırmak için mssql.conf SQL da kullanabilirsiniz.

  2. Docker kapsayıcılarınızı görüntülemek için komutunu docker ps kullanın.

     sudo docker ps -a
    
  3. STATUS sütununda Up ( ) durumu varsa Azure SQL Edge kapsayıcıda çalışıyor ve PORTS sütununda belirtilen bağlantı noktasını dinliyor. Azure SQL Edge kapsayıcınız için STATUS sütunu Çıkış yaptı olarak gösteriyorsa, Azure SQL Edge Belgeleri'nin Sorun Giderme bölümüne bakın.

    -h(ana bilgisayar adı) parametresi de yararlıdır, ancak kolaylık sağlamak için bu öğreticide kullanılmaz. Bu, kapsayıcının iç adını özel bir değer olarak değiştirir. Bu, aşağıdaki Transact-SQL sorgusunda döndürülen addır:

    SELECT @@SERVERNAME,
        SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
        SERVERPROPERTY('MachineName'),
        SERVERPROPERTY('ServerName')
    

    ve -h değerini --name aynı değere ayarlama, hedef kapsayıcıyı kolayca tanımlamak için iyi bir yol sağlar.

  4. Son adım olarak, çıktıda görünür olduğundan ve aynı adla ortam değişkeninde depolandığı için SA SA_PASSWORD ps -eax parolanızı değiştirebilirsiniz. Aşağıdaki adımlara bakın.

SA parolasını değiştirme

SA hesabı, Kurulum sırasında oluşturulan Azure SQL Edge örneğinde sistem yöneticisidir. Azure SQL Edge kapsayıcınızı oluşturduk sonra, belirttiğiniz ortam değişkeni MSSQL_SA_PASSWORD kapsayıcıda çalıştırarak echo $SA_PASSWORD keşfedilebilir. Güvenlik amacıyla SA parolanızı değiştirebilirsiniz.

  1. SA kullanıcısı için kullanmak üzere güçlü bir parola seçin.

  2. docker execTransact-SQL kullanarak parolayı değiştirmek için sqlcmd'SQL. Aşağıdaki örnekte, eski parola olan ve yeni parola <YourStrong!Passw0rd> olan yerine kendi parola <YourNewStrong!Passw0rd> değerlerinizi yazın.

    sudo docker exec -it azuresqledge /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P "<YourStrong@Passw0rd>" \
       -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong@Passw0rd>"'
    

Bağlan Edge'e SQL edinin

Aşağıdaki adımlarda Azure SQL Edge'e bağlanmak için kapsayıcının içinde sqlcmd olan Azure SQL kullanılır.

Not

sqlcmd aracı, SQL Edge kapsayıcılarının ARM64 sürümünde kullanılamaz.

  1. Komutunu kullanarak docker exec -it çalışan kapsayıcının içinde etkileşimli bir Bash kabuğu başlatabilirsiniz. Aşağıdaki örnekte, azuresqledge kapsayıcıyı oluşturulduğunda --name parametresi tarafından belirtilen addır.

    sudo docker exec -it azuresqledge "bash"
    
  2. Kapsayıcıya girdiktan sonra sqlcmd ile yerel olarak bağlanın. Sqlcmd varsayılan olarak yolda değildir, bu nedenle tam yolu belirtmeniz gerekir.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    İpucu

    Parolayı girmeniz istendiğinde komut satırına atabilirsiniz.

  3. Başarılı olursa bir sqlcmd komut istemine girmeniz gerekir: 1> .

Veri oluşturma ve sorgulama

Aşağıdaki bölümlerde sqlcmd ve Transact-SQL kullanarak yeni veritabanı oluşturma, veri ekleme ve basit bir sorgu çalıştırma adımları açıklanmaktadır.

Yeni veritabanı oluşturma

Aşağıdaki adımlar adlı yeni bir veritabanı TestDB oluşturur.

  1. Sqlcmd komut isteminden aşağıdaki Transact-SQL komutunu yapıştırarak bir test veritabanı oluşturun:

    CREATE DATABASE TestDB
    Go
    
  2. Sonraki satırda, sunucunuzda yer alan tüm veritabanlarının adını iade etmek için bir sorgu yazın:

    SELECT Name from sys.Databases
    Go
    

Veri ekleme

Ardından , yeni bir tablo oluşturun Inventory ve iki yeni satır ekleyin.

  1. sqlcmd komut isteminden bağlamı yeni veritabanına TestDB geçiş:

    USE TestDB
    
  2. adlı yeni bir tablo Inventory oluşturun:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Yeni tabloya veri ekleme:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Önceki GO komutları yürütmek için yazın:

    GO
    

Verileri seçme

Şimdi tablodan veri dönmek için bir sorgu Inventory çalıştırın.

  1. sqlcmd komut isteminden, miktarın 152'den büyük olduğu tablodan satır Inventory döndüren bir sorgu girin:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Şu komutu yürütün:

    GO
    

sqlcmd komut isteminden çıkın

  1. sqlcmd oturumlarınızı sona erdirecek şekilde QUIT yazın:

    QUIT
    
  2. Kapsayıcınıza etkileşimli komut isteminden çıkmak için exit yazın. Etkileşimli Bash kabuğundan çıktıktan sonra kapsayıcınız çalıştırmaya devam eder.

Bağlan dışından gelen

Ayrıca Docker makineniz üzerinde Azure SQL Edge örneğine, doğrudan bağlantıları destekleyen herhangi bir dış Linux, Windows veya macOS SQL bağlanabilirsiniz. SQL Edge kapsayıcıya dışarıdan bağlanma hakkında daha fazla bilgi için bkz. Bağlan Ve Azure SQL Edge'i sorgulama.

Kapsayıcınızı kaldırma

Bu öğreticide kullanılan Azure SQL Edge kapsayıcısı kaldırmak için aşağıdaki komutları çalıştırın:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

Uyarı

Kapsayıcıyı durdurmak ve kaldırmak, kapsayıcının tüm Azure SQL Edge verilerini kalıcı olarak siler. Verilerinizi korumanız gerekirse, kapsayıcıdan bir yedekleme dosyası oluşturun ve kopyalayın veya bir kapsayıcı veri kalıcılığı tekniği kullanın.

Sonraki Adımlar