Mulai cepat: Menjalankan gambar kontainer Linux SQL Server dengan Docker

Berlaku untuk:yes 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

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.

  1. 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 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, sudo digunakan. Jika Anda tidak ingin menggunakan sudo untuk menjalankan Docker, Anda bisa mengonfigurasi docker grup dan menambahkan pengguna ke grup tersebut. Untuk informasi selengkapnya, lihat Langkah-langkah pasca-pemasangan untuk Linux.

  2. 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-latest
    

    Catatan

    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-latest
    
    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-latest
    

    Kata 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 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 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.
  3. Untuk melihat kontainer Docker, gunakan docker ps perintah.

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

    Anda 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   sql1
    
  4. 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 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 connection
    

    Parameter --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 --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

  5. Sebagai langkah terakhir, ubah kata sandi SA Anda karena SA_PASSWORD terlihat dalam output ps -eax dan 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.

  1. 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 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, sudo digunakan. Jika Anda 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.

  2. 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-latest
    

    Catatan

    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-latest
    
    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-latest
    

    Kata 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 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 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.
  3. Untuk melihat kontainer Docker, gunakan docker ps perintah.

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

    Anda 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   sql1
    
  4. 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 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 connection
    

    Parameter --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 --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

  5. Sebagai langkah terakhir, ubah kata sandi SA Anda karena SA_PASSWORD terlihat dalam output ps -eax dan 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.

  1. Tarik gambar kontainer Linux Pratinjau 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 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, sudo digunakan. Jika Anda 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.

  2. 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-latest
    

    Catatan

    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-latest
    
    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-latest
    

    Kata 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 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 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.
  3. Untuk melihat kontainer Docker, gunakan docker ps perintah.

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

    Anda 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   sql1
    
  4. 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 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 connection
    

    Parameter --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 --hostname dan --name nilai yang sama adalah cara yang baik untuk mengidentifikasi target kontainer dengan mudah.

  5. Sebagai langkah terakhir, ubah kata sandi SA Anda karena SA_PASSWORD terlihat dalam output ps -eax dan 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.

  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}")\""
    
  1. Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.

  2. 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>'"
    
  1. Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.

  2. 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.

  1. Menggunakan docker exec -it perintah untuk memulai shell bash interaktif di dalam kontainer Anda yang sedang berjalan. Contoh berikut sql1 adalah nama yang ditentukan oleh parameter --name 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.

    /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.

  3. 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.

  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 TestDB database baru:

    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
    

Pilih 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.

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.

  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 Menginstal sqlcmd di Windows atau Menginstal sqlcmd 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 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>"
    
  4. Jalankan perintah Transact-SQL. Setelah selesai, ketik QUIT.

Alat umum lainnya untuk disambungkan 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 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

Selain itu, lihat repositori GitHub mssql-docker untuk sumber daya, umpan balik, dan masalah yang diketahui.