Mulai cepat: Menjalankan gambar kontainer SQL Server Linux dengan Docker

Berlaku untuk:SQL Server - Linux

Dalam mulai cepat ini, Anda 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 SQL Server 2019 (15.x) atau SQL Server 2022 (16.x) dari artikel ini.

Dalam mulai cepat ini, Anda 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 SQL Server 2017 (14.x) atau SQL Server 2022 (16.x) dari artikel ini.

Dalam mulai cepat ini, Anda menggunakan Docker untuk menarik dan menjalankan gambar kontainer Linux 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 SQL Server 2022 (16.x) di Linux.

Tip

Mulai cepat ini membuat kontainer 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. 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.

Penting

sqlcmd saat ini tidak mendukung MSSQL_PID parameter saat membuat kontainer. Jika Anda menggunakan instruksi sqlcmd dalam mulai cepat ini, Anda membuat kontainer dengan edisi Pengembang SQL Server. Gunakan instruksi antarmuka baris perintah (CLI) untuk membuat kontainer menggunakan lisensi pilihan Anda. Untuk informasi selengkapnya, lihat Menyebarkan dan menyambungkan ke kontainer SQL Server Linux.

Prasyarat

  • Docker Engine 1.8+ pada distribusi Linux yang didukung. Untuk informasi selengkapnya, lihat Menginstal Docker.

Menarik dan menjalankan gambar kontainer SQL Server Linux

Sebelum memulai langkah-langkah berikut, pastikan Anda memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.

Catatan

Untuk perintah bash dalam artikel ini, sudo digunakan. Jika tidak ingin menggunakan sudo untuk menjalankan Docker, Anda dapat mengonfigurasi docker grup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.

Menarik kontainer dari registri

Tarik gambar kontainer Linux SQL Server 2017 (14.x) dari Microsoft Container Registry.

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest

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 SQL Server 2019 (15.x) atau SQL Server 2022 (16.x) dari artikel ini.

Perintah sebelumnya menarik gambar kontainer Linux SQL Server 2017 (14.x) terbaru. 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 Registri Artefak Microsoft.

Jalankan kontainer

Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.

Penting

Variabel SA_PASSWORD lingkungan tidak digunakan lagi. Gunakan MSSQL_SA_PASSWORD sebagai gantinya.

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2017-latest

Catatan

Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2017-latest

Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server, dan berhenti berfungsi. 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. Anda dapat memeriksa log kesalahan dengan menggunakan docker logs perintah .

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 run sebelumnya:

Parameter Deskripsi
-e "ACCEPT_EULA=Y" Atur ACCEPT_EULA variabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi Pengguna Akhir. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi Kebijakan Kata Sandi. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_COLLATION=<SQL_Server_collation>" Tentukan kolase SQL Server kustom, bukan default SQL_Latin1_General_CP1_CI_AS.
-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 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:2017-latest Gambar kontainer Linux SQL Server.

Menampilkan daftar kontainer

  1. Untuk melihat kontainer Docker, gunakan docker ps perintah.

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    Anda harus melihat output yang mirip dengan berikut ini:

    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   sql1
    
  2. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer SQL Server Docker. 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 :

    sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    Parameter --hostname , seperti yang dibahas sebelumnya, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang Anda lihat dikembalikan dalam kueri Transact-SQL berikut:

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

    Pengaturan --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

  3. Sebagai langkah terakhir, ubah kata sandi SA Anda di lingkungan produksi, karena MSSQL_SA_PASSWORD terlihat dalam ps -eax output dan disimpan dalam variabel lingkungan dengan nama yang sama.


Menarik dan menjalankan gambar kontainer SQL Server Linux

Sebelum memulai langkah-langkah berikut, pastikan Anda memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.

Catatan

Untuk perintah bash dalam artikel ini, sudo digunakan. Jika tidak ingin menggunakan sudo untuk menjalankan Docker, Anda dapat mengonfigurasi docker grup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.

Menarik kontainer dari registri

Tarik gambar kontainer Linux SQL Server 2019 (15.x) dari Microsoft Container Registry.

sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest

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 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 Registri Artefak Microsoft.

Jalankan kontainer

Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.

Penting

Variabel SA_PASSWORD lingkungan tidak digunakan lagi. Gunakan MSSQL_SA_PASSWORD sebagai gantinya.

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2019-latest

Catatan

Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2019-latest

Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server, dan berhenti berfungsi. 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. Anda dapat memeriksa log kesalahan dengan menggunakan docker logs perintah .

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 run sebelumnya:

Parameter Deskripsi
-e "ACCEPT_EULA=Y" Atur ACCEPT_EULA variabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi Pengguna Akhir. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi Kebijakan Kata Sandi. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_COLLATION=<SQL_Server_collation>" Tentukan kolase SQL Server kustom, bukan default SQL_Latin1_General_CP1_CI_AS.
-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 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.

Menampilkan daftar kontainer

  1. Untuk melihat kontainer Docker, gunakan docker ps perintah.

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    Anda harus melihat output yang mirip dengan berikut ini:

    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   sql1
    
  2. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer SQL Server Docker. 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 :

    sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    Parameter --hostname , seperti yang dibahas sebelumnya, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang Anda lihat dikembalikan dalam kueri Transact-SQL berikut:

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

    Pengaturan --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

  3. Sebagai langkah terakhir, ubah kata sandi SA Anda di lingkungan produksi, karena MSSQL_SA_PASSWORD terlihat dalam ps -eax output dan disimpan dalam variabel lingkungan dengan nama yang sama.

Menarik dan menjalankan gambar kontainer SQL Server Linux

Sebelum memulai langkah-langkah berikut, pastikan Anda memilih shell pilihan Anda (bash, PowerShell, atau cmd) di bagian atas artikel ini.

Catatan

Untuk perintah bash dalam artikel ini, sudo digunakan. Jika tidak ingin menggunakan sudo untuk menjalankan Docker, Anda dapat mengonfigurasi docker grup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.

Menarik kontainer dari registri

Tarik gambar kontainer Linux SQL Server 2022 (16.x) dari Microsoft Container Registry.

sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest

Tip

Mulai cepat ini membuat kontainer 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.

Perintah sebelumnya menarik gambar kontainer Linux SQL Server 2022 (16.x) terbaru. 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 Registri Artefak Microsoft.

Jalankan kontainer

Untuk menjalankan gambar kontainer Linux dengan Docker, Anda dapat menggunakan perintah berikut dari shell bash atau prompt perintah PowerShell yang ditingkatkan.

Penting

Variabel SA_PASSWORD lingkungan tidak digunakan lagi. Gunakan MSSQL_SA_PASSWORD sebagai gantinya.

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2022-latest

Catatan

Jika Anda menggunakan PowerShell Core, ganti tanda kutip ganda dengan tanda kutip tunggal.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2022-latest

Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server, jika tidak, kontainer tidak dapat menyiapkan SQL Server, dan berhenti berfungsi. 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. Anda dapat memeriksa log kesalahan dengan menggunakan docker logs perintah .

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 run sebelumnya:

Parameter Deskripsi
-e "ACCEPT_EULA=Y" Atur ACCEPT_EULA variabel ke nilai apa pun untuk mengonfirmasi penerimaan Anda atas Perjanjian Lisensi Pengguna Akhir. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" Tentukan kata sandi kuat Anda sendiri yang setidaknya delapan karakter dan memenuhi Kebijakan Kata Sandi. Pengaturan yang diperlukan untuk gambar SQL Server.
-e "MSSQL_COLLATION=<SQL_Server_collation>" Tentukan kolase SQL Server kustom, bukan default SQL_Latin1_General_CP1_CI_AS.
-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 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.

Mengubah kata sandi administrator sistem

Akun SA adalah administrator sistem pada instans SQL Server yang dibuat selama penyiapan. Setelah Anda membuat kontainer SQL Server, MSSQL_SA_PASSWORD variabel lingkungan yang Anda tentukan dapat ditemukan dengan menjalankan echo $MSSQL_SA_PASSWORD dalam kontainer. Untuk tujuan keamanan, Anda harus mengubah kata sandi SA Anda di lingkungan produksi.

  1. Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.

  2. Gunakan docker exec untuk 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}")\""
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong@Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong@Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
    

    Catatan

    Versi sqlcmd yang lebih baru aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Koneksi dengan sqlcmd untuk Linux dan macOS. Jika koneksi tidak berhasil, Anda dapat menambahkan -No opsi ke sqlcmd untuk menentukan bahwa enkripsi bersifat opsional, bukan wajib.

sa Menonaktifkan akun sebagai praktik terbaik

Penting

Anda akan memerlukan kredensial ini untuk langkah-langkah selanjutnya. Pastikan untuk menuliskan ID pengguna dan kata sandi yang Anda masukkan di sini.

Saat Anda terhubung ke instans SQL Server menggunakan sa akun untuk pertama kalinya setelah penginstalan, penting bagi Anda untuk mengikuti langkah-langkah ini, lalu segera menonaktifkan sa login sebagai praktik terbaik keamanan.

  1. Buat login baru, dan jadikan anggota peran server sysadmin .

  2. Koneksi ke instans SQL Server menggunakan login baru yang Anda buat.

  3. Nonaktifkan akun, seperti yang sa direkomendasikan untuk praktik terbaik keamanan.

Menampilkan daftar kontainer

  1. Untuk melihat kontainer Docker, gunakan docker ps perintah.

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    Anda harus melihat output yang mirip dengan berikut ini:

    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   sql1
    
  2. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer SQL Server Docker. 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 :

    sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    Parameter --hostname , seperti yang dibahas sebelumnya, mengubah nama internal kontainer menjadi nilai kustom. Nilai ini adalah nama yang Anda lihat dikembalikan dalam kueri Transact-SQL berikut:

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

    Pengaturan --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

Sambungkan ke SQL Server

Langkah-langkah berikut menggunakan alat baris perintah SQL Server, utilitas sqlcmd, di dalam kontainer untuk menyambungkan ke SQL Server.

  1. Menggunakan docker exec -it perintah untuk memulai shell bash interaktif di dalam kontainer Anda yang sedang berjalan. Dalam contoh berikut, sql1 adalah nama yang ditentukan oleh --name parameter saat Anda membuat kontainer.

    sudo docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
  2. Setelah berada di dalam kontainer, sambungkan secara lokal dengan sqlcmd, menggunakan jalur lengkapnya.

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

    Catatan

    Versi sqlcmd yang lebih baru aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Koneksi dengan sqlcmd untuk Linux dan macOS. Jika koneksi tidak berhasil, Anda dapat menambahkan -No opsi ke sqlcmd untuk menentukan bahwa enkripsi bersifat opsional, bukan wajib.

    Anda dapat menghilangkan kata sandi pada baris perintah yang akan diminta untuk dimasukkan. Misalnya:

    sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
    
  3. Jika berhasil, Anda harus sampai ke perintah prompt sqlcmd: 1>.

Membuat dan mengkueri 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.

  1. Dari perintah prompt sqlcmd, tempelkan perintah Transact-SQL berikut ini untuk membuat database pengujian:

    CREATE DATABASE TestDB;
    
  2. Pada baris berikutnya, tulis kueri untuk mengembalikan nama semua database di server Anda:

    SELECT Name from sys.databases;
    
  3. Dua perintah sebelumnya tidak segera dijalankan. Ketik GO pada baris baru untuk menjalankan perintah sebelumnya:

    GO
    

Menyisipkan data

Selanjutnya buat tabel baru, Inventory, dan sisipkan dua baris baru.

  1. Dari perintah prompt sqlcmd, alihkan konteks ke database baru TestDB:

    USE TestDB;
    
  2. Buat tabel baru bernama Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT);
    
  3. Sisipkan data ke dalam tabel baru:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Ketik GO untuk menjalankan perintah sebelumnya:

    GO
    

Memilih data

Sekarang, jalankan kueri untuk mengembalikan data dari Inventory tabel.

  1. Dari perintah prompt sqlcmd, masukkan kueri yang mengembalikan baris dari Inventory tabel di mana jumlahnya lebih besar dari 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Jalankan perintah:

    GO
    

Keluar dari perintah prompt sqlcmd

  1. Untuk mengakhiri sesi sqlcmd Anda, ketik QUIT:

    QUIT
    
  2. Untuk 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. Alat eksternal menggunakan alamat IP untuk komputer host.

Langkah-langkah berikut menggunakan sqlcmd di luar kontainer Anda untuk menyambungkan ke SQL Server yang berjalan dalam kontainer. Langkah-langkah ini mengasumsikan bahwa Anda sudah menginstal alat baris perintah SQL Server di luar kontainer Anda. Prinsip yang sama berlaku saat menggunakan alat lain, tetapi proses menyambungkan unik untuk setiap alat.

  1. Temukan alamat IP untuk komputer host kontainer Anda, menggunakan ifconfig atau ip addr.

  2. Untuk contoh ini, instal alat sqlcmd di komputer klien Anda. Untuk informasi selengkapnya, lihat utilitas sqlcmd atau Instal alat baris perintah SQL Server sqlcmd dan bcp di Linux.

  3. 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 perlu membuka port masuk yang sesuai pada firewall Anda untuk mengizinkan koneksi.

    Catatan

    Versi sqlcmd yang lebih baru aman secara default. Jika koneksi tidak berhasil, dan Anda menggunakan versi 18 atau lebih tinggi, Anda dapat menambahkan -No opsi ke sqlcmd untuk menentukan bahwa enkripsi bersifat opsional, bukan wajib.

    sudo sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
    
  4. Jalankan perintah Transact-SQL. Setelah selesai, ketik QUIT.

Alat umum lainnya untuk menyambungkan ke SQL Server meliputi:

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 selesai menggunakan gambar kontainer SQL Server Linux 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.

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 Cara berkontribusi pada dokumentasi SQL Server