Mulai cepat: Menjalankan gambar kontainer Linux SQL Server dengan Docker
Berlaku untuk:
SQL Server (semua versi yang didukung) - Linux
Dalam mulai cepat ini, Anda akan menggunakan Docker untuk menarik dan menjalankan gambar kontainer Linux SQL Server 2017 (14.x), mssql-server-linux. Kemudian Anda dapat tersambung dengan sqlcmd untuk membuat database pertama Anda dan menjalankan kueri.
Untuk informasi selengkapnya tentang platform yang didukung, lihat Catatan rilis untuk SQL Server 2017 di Linux.
Tip
Mulai cepat ini membuat kontainer SQL Server 2017 (14.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi Pratinjau SQL Server 2019 (15.x) atau SQL Server 2022 (16.x) dari artikel ini.
Dalam mulai cepat ini, Anda akan menggunakan Docker untuk menarik dan menjalankan gambar kontainer Linux SQL Server 2019 (15.x), mssql-server-linux. Kemudian Anda dapat tersambung dengan sqlcmd untuk membuat database pertama Anda dan menjalankan kueri.
Untuk informasi selengkapnya tentang platform yang didukung, lihat Catatan rilis untuk SQL Server 2019 di Linux.
Tip
Mulai cepat ini membuat kontainer SQL Server 2019 (15.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi Pratinjau SQL Server 2017 (14.x) atau SQL Server 2022 (16.x) dari artikel ini.
Dalam mulai cepat ini, Anda akan menggunakan Docker untuk menarik dan menjalankan gambar kontainer Linux Pratinjau SQL Server 2022 (16.x), mssql-server-linux. Kemudian Anda dapat tersambung dengan sqlcmd untuk membuat database pertama Anda dan menjalankan kueri.
Untuk informasi selengkapnya tentang platform yang didukung, lihat Catatan rilis untuk Pratinjau SQL Server 2022 (16.x) di Linux.
Tip
Mulai cepat ini membuat kontainer Pratinjau SQL Server 2022 (16.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi SQL Server 2017 (14.x) atau SQL Server 2019 (15.x) dari artikel ini.
Gambar ini terdiri dari SQL Server yang berjalan di Linux berdasarkan Ubuntu 20.04. Ini dapat digunakan dengan Docker Engine 1.8+ di Linux.
Contoh dalam artikel ini menggunakan docker perintah . Namun, sebagian besar perintah ini juga berfungsi dengan Podman. Podman menyediakan antarmuka baris perintah yang mirip dengan Docker Engine. Anda dapat mengetahui lebih lanjut tentang Podman.
Prasyarat
Docker Engine 1.8+ pada distribusi Linux yang didukung. Untuk informasi selengkapnya, lihat Menginstal Docker.
Untuk informasi selengkapnya tentang persyaratan perangkat keras dan dukungan prosesor, lihat:
Driver penyimpanan Docker
overlay2. Driver ini adalah default untuk sebagian besar pengguna. Jika Anda tidak menggunakan penyedia penyimpanan ini dan perlu mengubah, lihat instruksi dan peringatan dalam dokumentasi Docker untuk mengonfigurasi overlay2.Setidaknya 2 GB ruang disk.
Setidaknya 2 GB RAM.
Menarik dan menjalankan gambar kontainer Linux SQL Server
Sebelum memulai langkah-langkah berikut, pastikan Anda telah memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.
Tarik gambar kontainer Linux SQL Server 2017 (14.x) dari Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latestdocker pull mcr.microsoft.com/mssql/server:2017-latestdocker pull mcr.microsoft.com/mssql/server:2017-latestTip
Mulai cepat ini membuat kontainer SQL Server 2017 (14.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi Pratinjau SQL Server 2019 (15.x) atau SQL Server 2022 (16.x) dari artikel ini.
Perintah sebelumnya menarik gambar kontainer Linux terbaru SQL Server 2017 (14.x). Jika Anda ingin menarik gambar tertentu, Anda menambahkan titik dua dan nama tag, seperti
mcr.microsoft.com/mssql/server:2017-GA-ubuntu. Untuk melihat semua gambar yang tersedia, lihat halaman hub Docker mssql-server.Untuk perintah bash dalam artikel ini,
sudodigunakan. Jika Anda tidak ingin menggunakansudountuk menjalankan Docker, Anda bisa mengonfigurasidockergrup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 1433:1433 --name sql1 --hostname sql1 \ -d \ mcr.microsoft.com/mssql/server:2017-latestCatatan
Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2017-latestdocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2017-latestKata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server dan akan berhenti berfungsi. Secara default, panjang kata sandi harus minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Anda dapat memeriksa log kesalahan dengan menggunakan
docker logsperintah .Secara default, mulai cepat ini membuat kontainer dengan edisi Pengembang SQL Server. Proses untuk menjalankan edisi produksi dalam kontainer sedikit berbeda. Untuk informasi selengkapnya, lihat Menjalankan gambar kontainer produksi.
Tabel berikut ini menyediakan deskripsi parameter dalam contoh
docker runsebelumnya:Parameter Deskripsi -e "ACCEPT_EULA=Y" Atur ACCEPT_EULAvariabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi End-User. Pengaturan yang diperlukan untuk gambar SQL Server.-e "SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi persyaratan kata sandi SQL Server. Pengaturan yang diperlukan untuk gambar SQL Server. -p 1433:1433 Petakan port TCP pada lingkungan host (nilai pertama) dengan port TCP dalam kontainer (nilai kedua). Dalam contoh ini, SQL Server mendengarkan TCP 1433 dalam kontainer dan port kontainer ini kemudian diekspos ke port TCP 1433 pada host. --name sql1 Menentukan nama sesuai pesanan untuk kontainer daripada yang dihasilkan secara acak. Jika Anda menjalankan lebih dari satu kontainer, Anda tidak dapat menggunakan kembali nama yang sama ini. --hostname sql1 Digunakan untuk secara eksplisit mengatur nama host kontainer. Jika Anda tidak menentukan nama host, nama tersebut default ke ID kontainer, yang merupakan GUID sistem yang dihasilkan secara acak. -d Jalankan kontainer di latar belakang (daemon). mcr.microsoft.com/mssql/server:2017-latest Gambar kontainer Linux SQL Server. Untuk melihat kontainer Docker, gunakan
docker psperintah.sudo docker ps -adocker ps -adocker ps -aAnda seharusnya melihat output yang mirip dengan output berikut:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2017-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1STATUSJika kolom memperlihatkan statusUp, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTSkolom.STATUSJika kolom untuk kontainer SQL Server Anda memperlihatkanExited, lihat bagian Pemecahan Masalah dari panduan konfigurasi. Server siap untuk koneksi setelah log kesalahan SQL Server menampilkan pesan:SQL Server is now ready for client connections. This is an informational message; no user action is required. Anda dapat meninjau log kesalahan SQL Server di dalam kontainer menggunakan perintah :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connectionParameter
--hostname, seperti yang dibahas di atas, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang akan Anda lihat dikembalikan dalam kueri transact-SQL berikut:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');Pengaturan
--hostnamedan--namenilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.Sebagai langkah terakhir, ubah kata sandi SA Anda karena
SA_PASSWORDterlihat dalam outputps -eaxdan disimpan dalam variabel lingkungan dengan nama yang sama. Lihat langkah di bawah ini.
Menarik dan menjalankan gambar kontainer Linux SQL Server
Sebelum memulai langkah-langkah berikut, pastikan Anda telah memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.
Tarik gambar kontainer Linux SQL Server 2019 (15.x) dari Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latestdocker pull mcr.microsoft.com/mssql/server:2019-latestdocker pull mcr.microsoft.com/mssql/server:2019-latestTip
Mulai cepat ini membuat kontainer SQL Server 2019 (15.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi Pratinjau SQL Server 2017 (14.x) atau SQL Server 2022 (16.x) dari artikel ini.
Perintah sebelumnya menarik gambar kontainer Linux SQL Server 2019 (15.x) terbaru. Jika Anda ingin menarik gambar tertentu, Anda menambahkan titik dua dan nama tag, seperti
mcr.microsoft.com/mssql/server:2019-GA-ubuntu. Untuk melihat semua gambar yang tersedia, lihat halaman hub Docker mssql-server.Untuk perintah bash dalam artikel ini,
sudodigunakan. Jika Anda tidak ingin menggunakansudountuk menjalankan Docker, Anda dapat mengonfigurasidockergrup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 1433:1433 --name sql1 --hostname sql1 \ -d \ mcr.microsoft.com/mssql/server:2019-latestCatatan
Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2019-latestdocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2019-latestKata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server dan akan berhenti berfungsi. Secara default, panjang kata sandi harus minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Anda dapat memeriksa log kesalahan dengan menggunakan
docker logsperintah .Secara default, mulai cepat ini membuat kontainer dengan edisi Pengembang SQL Server. Proses untuk menjalankan edisi produksi dalam kontainer sedikit berbeda. Untuk informasi selengkapnya, lihat Menjalankan gambar kontainer produksi.
Tabel berikut ini menyediakan deskripsi parameter dalam contoh
docker runsebelumnya:Parameter Deskripsi -e "ACCEPT_EULA=Y" Atur ACCEPT_EULAvariabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi End-User. Pengaturan yang diperlukan untuk gambar SQL Server.-e "SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi persyaratan kata sandi SQL Server. Pengaturan yang diperlukan untuk gambar SQL Server. -p 1433:1433 Petakan port TCP pada lingkungan host (nilai pertama) dengan port TCP dalam kontainer (nilai kedua). Dalam contoh ini, SQL Server mendengarkan TCP 1433 dalam kontainer dan port kontainer ini kemudian diekspos ke port TCP 1433 pada host. --name sql1 Menentukan nama sesuai pesanan untuk kontainer daripada yang dihasilkan secara acak. Jika Anda menjalankan lebih dari satu kontainer, Anda tidak dapat menggunakan kembali nama yang sama ini. --hostname sql1 Digunakan untuk secara eksplisit mengatur nama host kontainer. Jika Anda tidak menentukan nama host, nama host default ke ID kontainer, yang merupakan GUID sistem yang dihasilkan secara acak. -d Jalankan kontainer di latar belakang (daemon). mcr.microsoft.com/mssql/server:2019-latest Gambar kontainer Linux SQL Server. Untuk melihat kontainer Docker, gunakan
docker psperintah.sudo docker ps -adocker ps -adocker ps -aAnda seharusnya melihat output yang mirip dengan output berikut:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1STATUSJika kolom memperlihatkan statusUp, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTSkolom.STATUSJika kolom untuk kontainer SQL Server Anda memperlihatkanExited, lihat bagian Pemecahan Masalah dari panduan konfigurasi. Server siap untuk koneksi setelah log kesalahan SQL Server menampilkan pesan:SQL Server is now ready for client connections. This is an informational message; no user action is required. Anda dapat meninjau log kesalahan SQL Server di dalam kontainer menggunakan perintah :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connectionParameter
--hostname, seperti yang dibahas di atas, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang akan Anda lihat dikembalikan dalam kueri transact-SQL berikut:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');Pengaturan
--hostnamedan--namenilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.Sebagai langkah terakhir, ubah kata sandi SA Anda karena
SA_PASSWORDterlihat dalam outputps -eaxdan disimpan dalam variabel lingkungan dengan nama yang sama. Lihat langkah di bawah ini.
Menarik dan menjalankan gambar kontainer Linux SQL Server
Sebelum memulai langkah-langkah berikut, pastikan Anda telah memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.
Tarik gambar kontainer Linux Pratinjau SQL Server 2022 (16.x) dari Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2022-latestdocker pull mcr.microsoft.com/mssql/server:2022-latestdocker pull mcr.microsoft.com/mssql/server:2022-latestTip
Mulai cepat ini membuat kontainer Pratinjau SQL Server 2022 (16.x). Jika Anda lebih suka membuat kontainer Linux untuk versi SQL Server yang berbeda, lihat versi SQL Server 2017 (14.x) atau SQL Server 2019 (15.x) di artikel ini.
Perintah sebelumnya menarik gambar kontainer Linux Pratinjau terbaru SQL Server 2022 (16.x). Jika Anda ingin menarik gambar tertentu, Anda menambahkan titik dua dan nama tag, seperti
mcr.microsoft.com/mssql/server:2022-GA-ubuntu. Untuk melihat semua gambar yang tersedia, lihat halaman hub Docker mssql-server.Untuk perintah bash dalam artikel ini,
sudodigunakan. Jika Anda tidak ingin menggunakansudountuk menjalankan Docker, Anda dapat mengonfigurasidockergrup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 1433:1433 --name sql1 --hostname sql1 \ -d \ mcr.microsoft.com/mssql/server:2022-latestCatatan
Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2022-latestdocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1433:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2022-latestKata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server dan akan berhenti berfungsi. Secara default, panjang kata sandi harus minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Anda dapat memeriksa log kesalahan dengan menggunakan
docker logsperintah .Secara default, mulai cepat ini membuat kontainer dengan edisi Pengembang SQL Server. Proses untuk menjalankan edisi produksi dalam kontainer sedikit berbeda. Untuk informasi selengkapnya, lihat Menjalankan gambar kontainer produksi.
Tabel berikut ini menyediakan deskripsi parameter dalam contoh
docker runsebelumnya:Parameter Deskripsi -e "ACCEPT_EULA=Y" Atur ACCEPT_EULAvariabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi End-User. Pengaturan yang diperlukan untuk gambar SQL Server.-e "SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi persyaratan kata sandi SQL Server. Pengaturan yang diperlukan untuk gambar SQL Server. -p 1433:1433 Petakan port TCP pada lingkungan host (nilai pertama) dengan port TCP dalam kontainer (nilai kedua). Dalam contoh ini, SQL Server mendengarkan TCP 1433 dalam kontainer dan port kontainer ini kemudian diekspos ke port TCP 1433 pada host. --name sql1 Menentukan nama sesuai pesanan untuk kontainer daripada yang dihasilkan secara acak. Jika Anda menjalankan lebih dari satu kontainer, Anda tidak dapat menggunakan kembali nama yang sama ini. --hostname sql1 Digunakan untuk secara eksplisit mengatur nama host kontainer. Jika Anda tidak menentukan nama host, nama host default ke ID kontainer, yang merupakan GUID sistem yang dihasilkan secara acak. -d Jalankan kontainer di latar belakang (daemon). mcr.microsoft.com/mssql/server:2022-latest Gambar kontainer Linux SQL Server. Untuk melihat kontainer Docker, gunakan
docker psperintah.sudo docker ps -adocker ps -adocker ps -aAnda seharusnya melihat output yang mirip dengan output berikut:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1STATUSJika kolom memperlihatkan statusUp, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTSkolom.STATUSJika kolom untuk kontainer SQL Server Anda memperlihatkanExited, lihat bagian Pemecahan Masalah dari panduan konfigurasi. Server siap untuk koneksi setelah log kesalahan SQL Server menampilkan pesan:SQL Server is now ready for client connections. This is an informational message; no user action is required. Anda dapat meninjau log kesalahan SQL Server di dalam kontainer menggunakan perintah :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connectionParameter
--hostname, seperti yang dibahas di atas, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang akan Anda lihat dikembalikan dalam kueri transact-SQL berikut:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');Pengaturan
--hostnamedan--namenilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.Sebagai langkah terakhir, ubah kata sandi SA Anda karena
SA_PASSWORDterlihat dalam outputps -eaxdan disimpan dalam variabel lingkungan dengan nama yang sama. Lihat langkah di bawah ini.
Mengubah kata sandi administrator sistem
Akun SA adalah administrator sistem pada instans SQL Server yang dibuat selama penyiapan. Setelah Anda membuat kontainer SQL Server, SA_PASSWORD variabel lingkungan yang Anda tentukan dapat ditemukan dengan menjalankan echo $SA_PASSWORD dalam kontainer. Untuk tujuan keamanan, ubah kata sandi SA Anda.
Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.
Gunakan
docker execuntuk menjalankan sqlcmduntuk mengubah kata sandi gunakan Transact-SQL. Dalam contoh berikut, kata sandi lama dan baru dibaca dari input pengguna.sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.
Dalam contoh berikut, ganti kata sandi lama,
<YourStrong@Passw0rd>, dan kata sandi baru,<YourNewStrong@Passw0rd>, dengan nilai kata sandi Anda sendiri.docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd ` -S localhost -U SA -P "<YourStrong@Passw0rd>" ` -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.
Dalam contoh berikut, ganti kata sandi lama,
<YourStrong@Passw0rd>, dan kata sandi baru,<YourNewStrong@Passw0rd>, dengan nilai kata sandi Anda sendiri.docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd ` -S localhost -U SA -P "<YourStrong@Passw0rd>" ` -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
Sambungkan ke SQL Server
Langkah-langkah berikut menggunakan alat baris perintah SQL Server, sqlcmd, di dalam kontainer untuk menyambungkan ke SQL Server.
Menggunakan
docker exec -itperintah untuk memulai shell bash interaktif di dalam kontainer Anda yang sedang berjalan. Contoh berikutsql1adalah nama yang ditentukan oleh parameter--namesaat Anda membuat kontainer.sudo docker exec -it sql1 "bash"docker exec -it sql1 "bash"docker exec -it sql1 "bash"Setelah berada di dalam kontainer, sambungkan secara lokal dengan sqlcmd, menggunakan jalur lengkapnya.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"Tip
Anda dapat menghilangkan kata sandi pada baris perintah yang akan diminta untuk dimasukkan.
Jika berhasil, Anda harus sampai ke perintah prompt sqlcmd :
1>.
Buat dan kueri data
Bagian berikut ini memandu Anda menggunakan sqlcmd dan Transact-SQL untuk membuat database baru, menambahkan data, dan menjalankan kueri sederhana.
Buat database baru
Langkah-langkah berikut membuat database baru bernama TestDB.
Dari perintah prompt sqlcmd, tempelkan perintah Transact-SQL berikut ini untuk membuat database pengujian:
CREATE DATABASE TestDB;Pada baris berikutnya, tulis kueri untuk mengembalikan nama semua database di server Anda:
SELECT Name from sys.databases;Dua perintah sebelumnya tidak segera dijalankan. Ketik
GOpada baris baru untuk menjalankan perintah sebelumnya:GO
Menyisipkan data
Selanjutnya buat tabel baru, Inventory, dan sisipkan dua baris baru.
Dari perintah prompt sqlcmd, alihkan konteks ke
TestDBdatabase baru:USE TestDB;Buat tabel baru bernama
Inventory:CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT);Sisipkan data ke dalam tabel baru:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);Ketik
GOuntuk menjalankan perintah sebelumnya:GO
Pilih data
Sekarang, jalankan kueri untuk mengembalikan data dari Inventory tabel.
Dari perintah prompt sqlcmd, masukkan kueri yang mengembalikan baris dari
Inventorytabel di mana jumlahnya lebih besar dari 152:SELECT * FROM Inventory WHERE quantity > 152;Jalankan perintah:
GO
Keluar dari perintah prompt sqlcmd
Untuk mengakhiri sesi sqlcmd Anda, ketik
QUIT:QUITUntuk keluar dari prompt perintah interaktif di kontainer Anda, ketik
exit. Kontainer Anda terus berjalan setelah Anda keluar dari shell bash interaktif.
Sambungkan dari luar kontainer
Anda juga dapat terhubung ke instans SQL Server di komputer Docker Anda dari alat Linux, Windows, atau macOS eksternal apa pun yang mendukung koneksi SQL.
Langkah-langkah berikut menggunakan sqlcmd di luar kontainer Anda untuk menyambungkan ke SQL Server berjalan dalam kontainer. Langkah-langkah ini mengasumsikan bahwa Anda sudah memiliki alat baris perintah SQL Server yang diinstal di luar kontainer Anda. Prinsip yang sama berlaku saat menggunakan alat lain, tetapi proses menyambungkan unik untuk setiap alat.
Temukan alamat IP untuk komputer host kontainer Anda, menggunakan
ifconfigatauip addr.Untuk contoh ini, instal alat sqlcmd di komputer klien Anda. Untuk informasi selengkapnya, lihat Menginstal sqlcmd di Windows atau Menginstal sqlcmd di Linux.
Jalankan sqlcmd yang menentukan alamat IP dan port yang dipetakan ke port 1433 dalam kontainer Anda. Dalam contoh ini, port sama dengan port 1433 pada komputer host. Jika Anda menentukan port yang dipetakan yang berbeda pada komputer host, Anda akan menggunakannya di sini. Anda juga harus membuka port masuk yang sesuai pada firewall Anda untuk mengizinkan koneksi.
sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"Jalankan perintah Transact-SQL. Setelah selesai, ketik
QUIT.
Alat umum lainnya untuk disambungkan ke SQL Server meliputi:
- Visual Studio Code
- SQL Server Management Studio (SSMS) di Windows
- Azure Data Studio
- mssql-cli (Pratinjau)
- PowerShell Core
Menghapus kontainer Anda
Jika Anda ingin menghapus kontainer SQL Server yang digunakan dalam tutorial ini, jalankan perintah berikut:
sudo docker stop sql1
sudo docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
Peringatan
Menghentikan dan menghapus kontainer secara permanen menghapus data SQL Server apa pun dalam kontainer. Jika Anda perlu menyimpan data Anda, buat dan salin file cadangan dari kontainer atau gunakan teknik persistensi data kontainer.
Demo Docker
Setelah Anda mencoba menggunakan gambar kontainer Linux SQL Server untuk Docker, Anda mungkin ingin tahu bagaimana Docker digunakan untuk meningkatkan pengembangan dan pengujian. Video berikut menunjukkan bagaimana Docker dapat digunakan dalam skenario integrasi dan penyebaran berkelanjutan.
Langkah berikutnya
- Memulihkan database SQL Server dalam kontainer Linux.
- Pelajari tentang menjalankan beberapa kontainer dan persistensi data.
- Memecahkan masalah SQL Server kontainer Linux.
Selain itu, lihat repositori GitHub mssql-docker untuk sumber daya, umpan balik, dan masalah yang diketahui.