Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu makalede, SQL Server Docker kapsayıcılarını dağıtırken ve kullanırken görülen yaygın hatalar anlatılır ve sorunu çözmeye yardımcı olacak sorun giderme teknikleri sağlanır.
Docker komut hataları
Herhangi bir docker komut için hata alırsanız docker hizmetinin çalıştığından emin olun ve yükseltilmiş izinlerle çalıştırmayı deneyin.
Örneğin, Linux'ta komutları çalıştırırken docker aşağıdaki hatayı alabilirsiniz:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Linux'ta bu hatayı alırsanız, ile sudoaynı komutları çalıştırmayı deneyin. Bu başarısız olursa docker hizmetinin çalıştığını doğrulayın ve gerekirse başlatın.
sudo systemctl status docker
sudo systemctl start docker
Windows'da, PowerShell'i veya komut isteminizi Yönetici olarak başlattığınızı doğrulayın.
Önemli
SA_PASSWORD ortam değişkeni kullanım dışıdır. Bunun yerine MSSQL_SA_PASSWORD kullanın.
SQL Server kapsayıcı başlatma hataları
SQL Server kapsayıcısı çalıştırılamazsa aşağıdaki testleri deneyin:
gibi
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.bir hata alırsanız, 1433 numaralı kapsayıcı bağlantı noktasını zaten kullanımda olan bir bağlantı noktasına eşlemeye çalışıyorsunuz demektir. Sql Server'ı konak makinede yerel olarak çalıştırıyorsanız bu durum oluşabilir. İki SQL Server kapsayıcısı başlatır ve her ikisini de aynı konak bağlantı noktasına eşlemeye çalışırsanız bu da olabilir. Böyle bir durumda, 1433 numaralı kapsayıcı bağlantı noktasını farklı bir konak bağlantı noktasına eşlemek için parametresini kullanın-p. Örneğin:docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.Dikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. Kapsayıcı başlatmaya çalışırken gibi
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30tdout=1&tail=all: dial unix /var/run/docker.sock: connect: permission deniedbir hata alırsanız, kullanıcınızı Ubuntu'daki docker grubuna ekleyin. Ardından bu değişiklik yeni oturumları etkileyeceği için oturumu kapatın ve yeniden oturum açın.usermod -aG docker $USERKapsayıcıdan hata iletileri olup olmadığını denetleyin.
docker logs e69e056c702dHızlı başlangıç makalesinin önkoşullar bölümünde belirtilen en düşük bellek ve disk gereksinimlerini karşıladığınızdan emin olun.
Herhangi bir kapsayıcı yönetimi yazılımı kullanıyorsanız kök olarak çalışan kapsayıcı işlemlerini desteklediğine emin olun. Kapsayıcıdaki sqlservr işlemi kök olarak çalışır.
SQL Server Docker kapsayıcınız başladıktan hemen sonra kapanırsa, docker loglarınızı kontrol edin. Windows üzerinde PowerShell'i komutuyla
docker runkullanıyorsanız, tek tırnak yerine çift tırnak kullanın. PowerShell Core ile tek tırnak işareti kullanın.SQL Server kurulumunu ve hata günlüklerini gözden geçirin.
Döküm yakalamalarını etkinleştirme
KAPSAYıCı içinde SQL Server işlemi başarısız oluyorsa, SYS_PTRACE etkin yeni bir kapsayıcı oluşturmanız gerekir. Bu, bir özel durumda döküm dosyası oluşturmak için gerekli olan bir işlemi izlemek için Linux özelliğini ekler. Döküm dosyası, sorunun giderilmesine yardımcı olmak için destek tarafından kullanılabilir. Aşağıdaki docker run komutu bu özelliği etkinleştirir.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
SQL Server 2025 (17.x) veya sonraki bir sürüm için kapsayıcı dağıttığınızda, Standart Geliştirici sürümü için MSSQL_PID=DeveloperStandard ve Enterprise Developer sürümü için MSSQL_PID=Developer kullanın.
Dikkat
Parolanız,SQL Server varsayılan
SQL Server bağlantı hataları
Kapsayıcınızda çalışan SQL Server örneğine bağlanamıyorsanız aşağıdaki testleri deneyin:
Çıkışın STATUS sütununa bakarak SQL Server kapsayıcınızın çalıştığını kontrol edin. Aksi takdirde, başlatmak için kullanın
docker start <Container ID>.Varsayılan olmayan bir ana bilgisayar bağlantı noktasına (1433 değil) eşlediyseniz, bağlantı noktasını bağlantı dizesi belirttiğinizden emin olun. Bağlantı noktası eşlemenizi çıkışın PORTS sütununda
docker ps -agörebilirsiniz. Örneğin, aşağıdaki komut sqlcmd'yi 1401 numaralı bağlantı noktasında dinleyen bir kapsayıcıya bağlar:sqlcmd -S 10.3.2.4,1401 -U sa -P '<YourPassword>'sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"Mevcut eşlenmiş bir veri birimi veya veri birimi kapsayıcısıyla
docker runkullandıysanız, SQL ServerMSSQL_SA_PASSWORDdeğerini yoksayar. Bunun yerine, veri birimi veya veri birimi kapsayıcısı içindeki SQL Server verilerinden önceden yapılandırılmışsahesap parolası kullanılır. Verilerle ilişkilendirdiğinizsaparolayı kullandığınızı doğrulayın.SQL Server kurulumunu ve hata günlüklerini gözden geçirin.
SQL Server Kullanılabilirlik Grupları
Docker'ı SQL Server Kullanılabilirlik Grupları ile kullanıyorsanız iki ek gereksinim vardır.
Çoğaltma iletişimi için kullanılan bağlantı noktasını eşleyin (varsayılan 5022). Örneğin,
-p 5022:5022komutunuzun bir parçası olarakdocker runbelirtin.Komutun
-h YOURHOSTNAMEparametresiyle kapsayıcı ana bilgisayar adını açıkça ayarlayın. Bu konak adı, Kullanılabilirlik Grubunuzu yapılandırdığınızda kullanılır.-hile bunu belirtmezseniz, kapsayıcı kimliği varsayılan olarak kullanılır.
SQL Server kurulumu ve hata günlükleri
SQL Server kurulumuna ve hata günlüklerine /var/opt/mssql/log içinde bakabilirsiniz. Kapsayıcı çalışmıyorsa, önce kapsayıcıyı başlatın. Ardından, günlükleri incelemek için etkileşimli bir komut istemi kullanın. komutunu docker psçalıştırarak kapsayıcı kimliğini alabilirsiniz.
docker start <ContainerID>
docker exec -it <ContainerID> "bash"
Kapsayıcınızın içindeki bash oturumundan aşağıdaki komutları çalıştırın:
cd /var/opt/mssql/log
cat setup*.log
cat errorlog
Tavsiye
Kapsayıcınızı oluştururken bir konak dizinini /var/opt/mssql dosyasına bağladıysanız, bunun yerine konaktaki eşlenen yoldaki günlük alt dizinine bakabilirsiniz.
Kapsayıcıda komut yürütme
Çalışan bir kapsayıcınız varsa, konak terminalinden kapsayıcı içinde komut yürütebilirsiniz.
Kapsayıcı kimliğini almak için komutunu çalıştırın:
docker ps -a
Kapsayıcıda bash terminali başlatmak için şunu çalıştırın:
docker exec -it <Container ID> /bin/bash
Artık komutları kapsayıcının içindeki terminalde çalıştırıyormuş gibi çalıştırabilirsiniz. İşiniz bittiğinde yazın exit. Bu işlem etkileşimli komut oturumundan çıkar, ancak kapsayıcınız çalışmaya devam eder.
İlgili içerik
- Hızlı Başlangıç: Docker ile SQL Server Linux kapsayıcı görüntülerini çalıştırma
- Hızlı Başlangıç: Docker ile SQL Server Linux kapsayıcı görüntülerini çalıştırma
- Hızlı Başlangıç: Docker ile SQL Server Linux kapsayıcı görüntülerini çalıştırma
- Hızlı Başlangıç: Docker ile SQL Server Linux kapsayıcı görüntülerini çalıştırma
SQL belgelerine katkıda bulunma
SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.
Daha fazla bilgi için Bkz. Microsoft Learn belgelerini düzenleme.