Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di Linux
Artikel ini menjelaskan cara mengonfigurasi dan menyesuaikan kontainer SQL Server Linux menggunakan Docker. Anda dapat mempertahankan data Anda, memindahkan file dari dan ke kontainer, dan mengubah pengaturan default.
Kiat
Anda dapat menggunakan sqlcmd (Go) untuk membuat instans baru SQL Server dalam kontainer untuk tujuan pengembangan. Untuk informasi selengkapnya, lihat Membuat dan mengkueri kontainer SQL Server.
Membuat kontainer yang dikustomisasi
Anda dapat membuat Dockerfile Anda sendiri untuk membangun kontainer SQL Server yang disesuaikan. Untuk informasi selengkapnya, lihat demo yang menggabungkan SQL Server dan aplikasi Node. Jika Anda membuat Dockerfile Anda sendiri, ketahui proses latar depan, karena proses ini mengontrol masa pakai kontainer. Jika keluar, kontainer akan dimatikan. Misalnya, jika Anda ingin menjalankan skrip dan memulai SQL Server, pastikan bahwa proses SQL Server adalah perintah paling tepat. Semua perintah lainnya dijalankan di latar belakang. Perintah berikut mengilustrasikan ini di dalam Dockerfile:
/usr/src/app/do-my-sql-commands.sh & /opt/mssql/bin/sqlservr
Jika Anda membalikkan perintah dalam contoh sebelumnya, kontainer akan dimatikan saat skrip do-my-sql-commands.sh selesai.
Pertahankan data Anda
Perubahan konfigurasi SQL Server dan file database Anda tetap ada di kontainer bahkan jika Anda memulai ulang kontainer dengan docker stop dan docker start. Namun, jika Anda menghapus kontainer dengan docker rm, semua yang ada dalam kontainer dihapus, termasuk SQL Server dan database Anda. Bagian berikut menjelaskan cara menggunakan volume data untuk mempertahankan file database Anda meskipun kontainer terkait dihapus.
Penting
Untuk SQL Server, penting sekali bagi Anda memahami persistensi data di Docker. Selain diskusi di bagian ini, lihat dokumentasi Docker tentang cara mengelola data dalam kontainer Docker.
Memasang direktori host sebagai volume data
Opsi pertama adalah memasang direktori pada host Anda sebagai volume data di kontainer Anda. Untuk melakukannya, gunakan perintah docker run dengan flag -v <host directory>:/var/opt/mssql, di mana <host directory> adalah suatu jalur tertentu. Misalnya: C:\SQL di Windows, atau ~/sqlvolumes di Linux. Tindakan ini memungkinkan data dipulihkan di antara eksekusi kontainer.
Catatan
Kontainer untuk SQL Server 2019 (15.x) dan versi yang lebih baru secara otomatis dimulai sebagai non-root, sementara kontainer SQL Server 2017 (14.x) dimulai sebagai root secara default. Untuk informasi selengkapnya tentang menjalankan kontainer SQL Server sebagai non-root, lihat Kontainer Linux SQL Server yang Aman.
Penting
Variabel SA_PASSWORD lingkungan tidak digunakan lagi. Gunakan MSSQL_SA_PASSWORD sebagai gantinya.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v <host directory>/data:/var/opt/mssql/data \
-v <host directory>/log:/var/opt/mssql/log \
-v <host directory>/secrets:/var/opt/mssql/secrets \
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v <host directory>/data:/var/opt/mssql/data `
-v <host directory>/log:/var/opt/mssql/log `
-v <host directory>/secrets:/var/opt/mssql/secrets `
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v <host directory>/data:/var/opt/mssql/data ^
-v <host directory>/log:/var/opt/mssql/log ^
-v <host directory>/secrets:/var/opt/mssql/secrets ^
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v <host directory>/data:/var/opt/mssql/data \
-v <host directory>/log:/var/opt/mssql/log \
-v <host directory>/secrets:/var/opt/mssql/secrets \
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v <host directory>/data:/var/opt/mssql/data `
-v <host directory>/log:/var/opt/mssql/log `
-v <host directory>/secrets:/var/opt/mssql/secrets `
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v <host directory>/data:/var/opt/mssql/data ^
-v <host directory>/log:/var/opt/mssql/log ^
-v <host directory>/secrets:/var/opt/mssql/secrets ^
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v <host directory>/data:/var/opt/mssql/data \
-v <host directory>/log:/var/opt/mssql/log \
-v <host directory>/secrets:/var/opt/mssql/secrets \
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v <host directory>/data:/var/opt/mssql/data `
-v <host directory>/log:/var/opt/mssql/log `
-v <host directory>/secrets:/var/opt/mssql/secrets `
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v <host directory>/data:/var/opt/mssql/data ^
-v <host directory>/log:/var/opt/mssql/log ^
-v <host directory>/secrets:/var/opt/mssql/secrets ^
-d mcr.microsoft.com/mssql/server:2022-latest
Perhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Teknik ini juga memungkinkan Anda untuk berbagi dan melihat file di host di luar Docker.
Menggunakan kontainer volume data
Opsi kedua adalah menggunakan kontainer volume data. Anda dapat membuat kontainer volume data dengan menentukan nama volume, bukan direktori host dengan parameter -v. Contoh berikut membuat volume data bersama bernama sqlvolume.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v sqlvolume:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v sqlvolume:/var/opt/mssql `
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v sqlvolume:/var/opt/mssql ^
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v sqlvolume:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v sqlvolume:/var/opt/mssql `
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v sqlvolume:/var/opt/mssql ^
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 \
-v sqlvolume:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 `
-v sqlvolume:/var/opt/mssql `
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 ^
-v sqlvolume:/var/opt/mssql ^
-d mcr.microsoft.com/mssql/server:2022-latest
Perhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Teknik untuk membuat volume data secara implisit dalam perintah jalankan tidak berfungsi dengan versi Docker yang lebih lama. Dalam hal ini, gunakan langkah-langkah eksplisit yang diuraikan dalam dokumentasi Docker, Membuat dan memasang kontainer volume data.
Bahkan jika Anda menghentikan dan menghapus kontainer ini, volume data tetap ada. Anda dapat melihatnya dengan perintah docker volume ls.
docker volume ls
Jika Anda kemudian membuat kontainer lain dengan nama volume yang sama, kontainer baru menggunakan data SQL Server yang sama yang terkandung dalam volume.
Untuk menghapus wadah volume data, gunakan perintah docker volume rm.
Peringatan
Jika Anda menghapus kontainer volume data, data SQL Server apa pun dalam kontainer akan dihapus secara permanen.
Pencadangan dan pemulihan
Selain teknik kontainer ini, Anda juga dapat menggunakan teknik pencadangan dan pemulihan SQL Server standar. Anda dapat menggunakan file cadangan untuk melindungi data Anda atau memindahkan data ke instans SQL Server lain. Untuk informasi selengkapnya, lihat Mencadangkan dan memulihkan database SQL Server di Linux.
Peringatan
Jika Anda membuat cadangan, pastikan untuk membuat atau menyalin file cadangan di luar kontainer. Jika tidak, jika kontainer dihapus, file cadangan juga dihapus.
Mengaktifkan pencadangan dan pemulihan VDI dalam wadah
Operasi pencadangan dan pemulihan Antarmuka Perangkat Virtual (VDI) sekarang didukung dalam penyebaran kontainer SQL Server yang dimulai dengan CU15 untuk SQL Server 2019 (15.x) dan CU28 untuk SQL Server 2017 (14.x). Ikuti langkah-langkah ini untuk mengaktifkan pencadangan atau pemulihan berbasis VDI untuk kontainer SQL Server:
Saat menyebarkan kontainer SQL Server, gunakan
--shm-sizeopsi . Untuk memulai, atur ukuran ke 1 GB, seperti yang ditunjukkan pada perintah berikut. Ganti<password>dengan kata sandi yang valid.docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \ --shm-size 1g \ -p 1433:1433 \ --name sql19 \ --hostname sql19 \ -d mcr.microsoft.com/mssql/server:2019-latestOpsi
--shm-sizeini memungkinkan Anda mengonfigurasi ukuran direktori memori bersama (/dev/shm) di dalam kontainer, yang diatur ke 64 MB secara default. Ukuran memori bersama default ini tidak mencukupi untuk mendukung pencadangan VDI. Kami menyarankan agar Anda mengonfigurasi ini hingga minimal 1 GB saat Anda menyebarkan kontainer SQL Server dan ingin mendukung pencadangan VDI.Anda juga harus mengaktifkan parameter
memory.enablecontainersharedmemorybaru di dalammssql.confkontainer. Anda dapat memasangmssql.confpada penyebaran kontainer menggunakan opsi seperti yang-vdijelaskan di bagian Pertahankan data Anda, atau setelah Anda menyebarkan kontainer dengan memperbaruimssql.confsecara manual di dalam kontainer. Berikut adalah file sampelmssql.confdengan pengaturanmemory.enablecontainersharedmemorydiatur ketrue.[memory] enablecontainersharedmemory = true
Menyalin file dari kontainer
Untuk menyalin file dari kontainer, gunakan perintah berikut:
docker cp <Container ID>:<Container path> <host path>
Anda bisa mendapatkan ID Kontainer dengan menjalankan perintah docker ps -a.
Contoh:
docker cp d6b75213ef80:/var/opt/mssql/log/errorlog /tmp/errorlog
docker cp d6b75213ef80:/var/opt/mssql/log/errorlog C:\Temp\errorlog
docker cp d6b75213ef80:/var/opt/mssql/log/errorlog C:\Temp\errorlog
Menyalin file ke dalam kontainer
Untuk menyalin file ke dalam kontainer, gunakan perintah berikut:
docker cp <Host path> <Container ID>:<Container path>
Contoh:
docker cp /tmp/mydb.mdf d6b75213ef80:/var/opt/mssql/data
docker cp C:\Temp\mydb.mdf d6b75213ef80:/var/opt/mssql/data
docker cp C:\Temp\mydb.mdf d6b75213ef80:/var/opt/mssql/data
Mengonfigurasi zona waktu
Untuk menjalankan SQL Server dalam kontainer Linux dengan zona waktu tertentu, konfigurasikan TZ variabel lingkungan (lihat Mengonfigurasi zona waktu untuk SQL Server 2022 dan versi yang lebih baru di Linux untuk informasi selengkapnya). Untuk menemukan nilai zona waktu yang tepat, jalankan tzselect perintah dari prompt bash Linux:
tzselect
Setelah Anda memilih zona waktu, tzselect menampilkan output yang mirip dengan contoh berikut:
The following information has been given:
United States
Pacific
Therefore TZ='America/Los_Angeles' will be used.
Anda dapat menggunakan informasi ini untuk mengatur variabel lingkungan yang sama di kontainer Linux Anda. Contoh berikut menunjukkan cara menjalankan SQL Server dalam kontainer di Americas/Los_Angeles zona waktu:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 --name sql1 \
-e 'TZ=America/Los_Angeles' \
-d mcr.microsoft.com/mssql/server:2017-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 `
-e "TZ=America/Los_Angeles" `
-d mcr.microsoft.com/mssql/server:2017-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 --name sql1 ^
-e "TZ=America/Los_Angeles" ^
-d mcr.microsoft.com/mssql/server:2017-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 --name sql1 \
-e 'TZ=America/Los_Angeles' \
-d mcr.microsoft.com/mssql/server:2019-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 `
-e "TZ=America/Los_Angeles" `
-d mcr.microsoft.com/mssql/server:2019-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 `
-e "TZ=America/Los_Angeles" `
-d mcr.microsoft.com/mssql/server:2019-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 --name sql1 \
-e 'TZ=America/Los_Angeles' \
-d mcr.microsoft.com/mssql/server:2022-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 `
-e "TZ=America/Los_Angeles" `
-d mcr.microsoft.com/mssql/server:2022-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 --name sql1 ^
-e "TZ=America/Los_Angeles" ^
-d mcr.microsoft.com/mssql/server:2022-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-p 1433:1433 --name sql1 \
-e 'TZ=America/Los_Angeles' \
-d mcr.microsoft.com/mssql/server:2025-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 `
-e "TZ=America/Los_Angeles" `
-d mcr.microsoft.com/mssql/server:2025-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" ^
-p 1433:1433 --name sql1 ^
-e "TZ=America/Los_Angeles" ^
-d mcr.microsoft.com/mssql/server:2025-latest
Perhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Ubah jalur tempdb
Ini adalah praktik yang baik untuk menjaga database Anda tempdb terpisah dari database pengguna Anda.
Sambungkan ke instans SQL Server, lalu jalankan skrip Transact-SQL (T-SQL) berikut. Jika ada lebih banyak file yang terkait dengan
tempdb, Anda juga perlu memindahkannya.ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf'); GOVerifikasi bahwa
tempdblokasi file telah dimodifikasi, menggunakan skrip T-SQL berikut:SELECT * FROM sys.sysaltfiles WHERE dbid = 2;Anda harus memulai ulang kontainer SQL Server agar perubahan ini berlaku.
docker stop sql1 docker start sql1docker stop sql1 docker start sql1docker stop sql1 docker start sql1Buka sesi interaktif
bashuntuk menyambungkan ke kontainer.docker exec -it sql1 bashdocker exec -it sql1 bashdocker exec -it sql1 bashSetelah tersambung ke shell interaktif, jalankan perintah berikut untuk memeriksa lokasi
tempdb:ls /var/opt/mssql/tempdb/Jika pemindahan berhasil, Anda akan melihat output serupa:
tempdb.mdf templog.ldf
Mengubah lokasi file bawaan
MSSQL_DATA_DIR Tambahkan variabel untuk mengubah direktori data Anda dalam perintah Andadocker run, lalu pasang volume ke lokasi yang dapat diakses pengguna kontainer Anda.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-e 'MSSQL_DATA_DIR=/my/file/path' \
-v /my/host/path:/my/file/path \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-e "MSSQL_DATA_DIR=/my/file/path" `
-v /my/host/path:/my/file/path `
-p 1433:1433 `
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-e "MSSQL_DATA_DIR=/my/file/path" ^
-v /my/host/path:/my/file/path ^
-p 1433:1433 ^
-d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-e 'MSSQL_DATA_DIR=/my/file/path' \
-v /my/host/path:/my/file/path \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-e "MSSQL_DATA_DIR=/my/file/path" `
-v /my/host/path:/my/file/path `
-p 1433:1433 `
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-e "MSSQL_DATA_DIR=/my/file/path" ^
-v /my/host/path:/my/file/path ^
-p 1433:1433 ^
-d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-e 'MSSQL_DATA_DIR=/my/file/path' \
-v /my/host/path:/my/file/path \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-e "MSSQL_DATA_DIR=/my/file/path" `
-v /my/host/path:/my/file/path `
-p 1433:1433 `
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-e "MSSQL_DATA_DIR=/my/file/path" ^
-v /my/host/path:/my/file/path ^
-p 1433:1433 ^
-d mcr.microsoft.com/mssql/server:2022-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-e 'MSSQL_DATA_DIR=/my/file/path' \
-v /my/host/path:/my/file/path \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2025-latest
docker run -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=<password>" `
-e "MSSQL_DATA_DIR=/my/file/path" `
-v /my/host/path:/my/file/path `
-p 1433:1433 `
-d mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-e "MSSQL_DATA_DIR=/my/file/path" ^
-v /my/host/path:/my/file/path ^
-p 1433:1433 ^
-d mcr.microsoft.com/mssql/server:2025-latest
Menggunakan mssql-config untuk mengonfigurasi SQL Server di dalam kontainer
Anda dapat menggunakan alat mssql-conf untuk mengatur parameter dalam kontainer SQL Server.
Misalnya, Anda dapat mengatur batas memori untuk instans menggunakan langkah-langkah berikut:
Sambungkan langsung ke kontainer menggunakan
docker execsebagai pengguna root. Gantisqlcontainerdengan nama kontainer Anda.docker exec -u root -it sqlcontainer "bash"Gunakan mssql-conf untuk mengubah pengaturan. Contoh ini mengubah pengaturan menjadi
memory.memorylimitmb2 GB (2.048 MB)./opt/mssql/bin/mssql-conf set memory.memorylimitmb 2048
Contoh kontainer Docker Kustom
Untuk contoh kontainer Docker kustom, lihat https://github.com/microsoft/mssql-docker/tree/master/linux/preview/examples. Contoh meliputi:
- Contoh Dockerfile dengan Pencarian Teks Lengkap
- Contoh Dockerfile untuk RHEL 7 dan SQL Server 2019
- Contoh Dockerfile untuk RHEL 8 dan SQL Server 2017
- Contoh Dockerfile untuk Ubuntu 20.04 dan SQL Server 2019 dengan Pencarian Teks Lengkap, PolyBase, dan Alat
Untuk informasi tentang cara membuat dan menjalankan kontainer Docker menggunakan Dockerfiles, lihat sampel Layanan ML di GitHub.
Mengonfigurasi batas memori dengan grup kontrol (cgroup) v2
Dimulai dengan SQL Server 2025 (17.x) dan SQL Server 2022 (16.x) CU 20, SQL Server mendeteksi dan menghormati batasan grup kontrol (cgroup) v2, meningkatkan stabilitas performa dan isolasi sumber daya di seluruh lingkungan Docker, Kubernetes, dan OpenShift. Grup kontrol memungkinkan kontrol terperinci di kernel Linux atas sumber daya sistem seperti CPU dan memori.
Dengan dukungan cgroup v2, SQL Server mengurangi kesalahan kehabisan memori (OOM) yang sebelumnya diamati dalam penyebaran kontainer, terutama pada kluster Kubernetes (misalnya, AKS v1.25+), di mana batas memori yang ditentukan dalam spesifikasi kontainer tidak diberlakukan.
Periksa versi cgroup
stat -fc %T /sys/fs/cgroup
Hasilnya adalah sebagai berikut:
| Result | Description |
|---|---|
cgroup2fs |
Anda menggunakan cgroup v2 |
cgroup |
Anda menggunakan cgroup v1 |
Beralih ke cgroup v2
Jalur termudah adalah memilih distribusi yang mendukung cgroup v2 secara langsung.
Jika Anda perlu beralih secara manual, tambahkan baris berikut ke konfigurasi GRUB Anda:
systemd.unified_cgroup_hierarchy=1
Kemudian, jalankan perintah berikut untuk memperbarui GRUB:
sudo update-grub
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
- Mulai cepat: Menyebarkan kontainer SQL Server Linux ke Kubernetes menggunakan bagan Helm
- Dokumentasi Linux Kernel cgroup v2
- Grup Kontrol v2
Konten terkait
- Mulai menggunakan gambar kontainer SQL Server 2017 (14.x) di Docker dengan melalui mulai cepat
- Mulai menggunakan gambar kontainer SQL Server 2019 (15.x) di Docker dengan melalui mulai cepat
- Mulai menggunakan gambar kontainer SQL Server 2022 (16.x) di Docker dengan melalui mulai cepat
- Mulai menggunakan gambar kontainer SQL Server 2025 (17.x) di Docker dengan melalui mulai cepat
Berkontribusi pada dokumentasi SQL
Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.
Untuk informasi selengkapnya, lihat Mengedit dokumentasi Microsoft Learn.