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.
Peringatan
Saat Anda menghentikan dan menghapus kontainer, data SQL Server Anda dalam kontainer akan dihapus secara permanen. Untuk informasi selengkapnya tentang mempertahankan data Anda, buat dan salin file cadangan dari kontainer atau gunakan teknik persistensi data kontainer.
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 artikel ini untuk versi SQL Server 2019 (15.x) atau SQL Server 2022 (16.x) di 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.
Peringatan
Saat Anda menghentikan dan menghapus kontainer, data SQL Server Anda dalam kontainer akan dihapus secara permanen. Untuk informasi selengkapnya tentang mempertahankan data Anda, buat dan salin file cadangan dari kontainer atau gunakan teknik persistensi data kontainer.
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 di Linux.
Peringatan
Saat Anda menghentikan dan menghapus kontainer, data SQL Server Anda dalam kontainer akan dihapus secara permanen. Untuk informasi selengkapnya tentang mempertahankan data Anda, buat dan salin file cadangan dari kontainer atau gunakan teknik persistensi data kontainer.
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.
Dimulai dengan SQL Server 2022 (16.x) CU 14 dan SQL Server 2019 (15.x) CU 28, gambar kontainer menyertakan paket mssql-tools18 baru. Direktori /opt/mssql-tools/bin
sebelumnya sedang di-fase keluar. Direktori baru untuk alat Microsoft ODBC 18 adalah /opt/mssql-tools18/bin
, selaras dengan penawaran alat terbaru. Untuk informasi selengkapnya tentang perubahan dan peningkatan keamanan, lihat ODBC Driver 18.0 untuk SQL Server Dirilis.
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.
- Untuk informasi selengkapnya tentang persyaratan perangkat keras dan dukungan prosesor, lihat SQL Server 2016 dan 2017: Persyaratan perangkat keras dan perangkat lunak
- Untuk informasi selengkapnya tentang persyaratan perangkat keras dan dukungan prosesor, lihat SQL Server 2019: Persyaratan perangkat keras dan perangkat lunak
- Untuk informasi selengkapnya tentang persyaratan perangkat keras dan dukungan prosesor, lihat SQL Server 2022: Persyaratan perangkat keras dan perangkat lunak
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.Instal sqlcmd terbaru di host Docker Anda.
Setidaknya 2 GB ruang disk.
Setidaknya 2 GB RAM.
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.
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
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
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
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
STATUS
Jika kolom memperlihatkan statusUp
, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTS
kolom.STATUS
Jika kolom untuk kontainer SQL Server Anda memperlihatkanExited
, 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.Sebagai langkah terakhir, ubah kata sandi SA Anda di lingkungan produksi, karena
MSSQL_SA_PASSWORD
terlihat dalamps -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.
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.
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
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.
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
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
Untuk melihat kontainer Docker, gunakan
docker ps
perintah.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
STATUS
Jika kolom memperlihatkan statusUp
, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTS
kolom.STATUS
Jika kolom untuk kontainer SQL Server Anda memperlihatkanExited
, 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 :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.Sebagai langkah terakhir, ubah kata sandi SA Anda di lingkungan produksi, karena
MSSQL_SA_PASSWORD
terlihat dalamps -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.
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.
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
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.
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
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.
Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.
Gunakan
docker exec
untuk menjalankan sqlcmduntuk mengubah kata sandi gunakan Transact-SQL. Dalam contoh berikut, kata sandi lama dan baru dibaca dari input pengguna.docker exec -it sql1 /opt/mssql-tools18/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-tools18/bin/sqlcmd ` -S localhost -U SA -P "<YourStrong@Passw0rd>" ` -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U SA -P "<YourStrong@Passw0rd>" ` -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
Versi terbaru sqlcmd aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Menyambungkan 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.
Buat login baru, dan jadikan anggota peran server sysadmin .
Bergantung pada apakah Anda memiliki penyebaran kontainer atau non-kontainer, mengaktifkan autentikasi Windows, dan membuat login berbasis Windows baru dan menambahkannya ke peran server sysadmin .
Jika tidak, buat login menggunakan autentikasi SQL Server, dan tambahkan ke peran server sysadmin .
Sambungkan ke instans SQL Server menggunakan login baru yang Anda buat.
Nonaktifkan akun, seperti yang
sa
direkomendasikan untuk praktik terbaik keamanan.
Menampilkan daftar kontainer
Untuk melihat kontainer Docker, gunakan
docker ps
perintah.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
STATUS
Jika kolom memperlihatkan statusUp
, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalamPORTS
kolom.STATUS
Jika kolom untuk kontainer SQL Server Anda memperlihatkanExited
, 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 :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.
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.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 <userid> -P "<YourNewStrong@Passw0rd>"
Versi terbaru sqlcmd aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Menyambungkan 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. Contohnya:
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
Setelah berada di dalam kontainer, sambungkan secara lokal dengan sqlcmd, menggunakan jalur lengkapnya.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
Versi terbaru sqlcmd aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Menyambungkan 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. Contohnya:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
Setelah berada di dalam kontainer, sambungkan secara lokal dengan sqlcmd, menggunakan jalur lengkapnya.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
Versi terbaru sqlcmd aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Menyambungkan 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. Contohnya:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
- 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
.
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
GO
pada 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 database baru
TestDB
: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
GO
untuk menjalankan perintah sebelumnya:GO
Memilih data
Sekarang, jalankan kueri untuk mengembalikan data dari Inventory
tabel.
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;
Jalankan perintah:
GO
Keluar dari perintah prompt sqlcmd
Untuk mengakhiri sesi sqlcmd Anda, ketik
QUIT
:QUIT
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.
Temukan alamat IP untuk komputer host kontainer Anda, menggunakan
ifconfig
atauip addr
.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.
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.
Versi terbaru sqlcmd 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>"
Jalankan perintah Transact-SQL. Setelah selesai, ketik
QUIT
.
Alat umum lainnya untuk menyambungkan ke SQL Server meliputi:
- Ekstensi SQL Server untuk Visual Studio Code
- Menggunakan SQL Server Management Studio di Windows untuk mengelola SQL Server di Linux
- Apa itu Azure Data Studio?
- mssql-cli (Pratinjau)
- Mengelola SQL Server di Linux dengan PowerShell Core
Menghapus kontainer Anda
Jika Anda ingin menghapus kontainer SQL Server yang digunakan dalam tutorial ini, jalankan perintah berikut:
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
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.
Tugas terkait
Konten terkait
- Memulihkan database SQL Server dalam kontainer Linux
- Memecahkan masalah kontainer SQL Server Docker
- repositori GitHub mssql-docker
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