MS SQL Server - Image Container Docker

MS SQL Server là hệ quản trị CSDL của Microsft, nó là hệ quản trị CSDL mạnh được dùng rộng rãi, hiện nay nó có các phiên bản trên Windows và Linux. Microsft cũng cung cấp phiên bản Image để tạo ra các container Docker: mcr.microsoft.com/mssql/server:2017-latest.

Khi sử dụng Image mcr.microsoft.com/mssql/server:2017-latest lưu ý một số điểm:

  • User quản trị mặc định MS SQLServer có tên là sa.
  • Password được thiết lập bằng biến môi trường SA_PASSWORD (Đặt password phải mệnh, từ 8 ký tự, gồm số, chữ).
  • Yêu cầu hệ thống cần tối thiểu 2GB RAM, như vậy cần đảm bảo Docker có đủ RAM khi chạy MSSQL
  • Khi chạy Docker trên macOS chưa hỗ trợ ánh xạ trực tiếp thư mục Host vào Container MSSQL (Windows, Linux bình thường) nhưng mount Volume thì hoạt động bình thường.
  • Ngoài ra cũng cần thiết lập biến môi trường ACCEPT_EULA=Y
  • Cổng kết nối mặc định là 1433

Cài đặt, chạy MS SQL Server

Để dữ liệu MSSQLServer không bị mất khi xóa Container cần tạo ra một ổ đĩa để ánh xạ vào container, ta tạo ổ đĩa đặt tên là vmssql.

docker volume create device=path_in_host vmssql

Trên máy macOS có thể không gán ngay thư mục host vào được thì chỉ dùng

docker volume create vmssql

Giờ sẽ tạo/chạy container với thông số sau:

  • Đặt password cho tài khoản saPassword789
  • Public xạ cổng 1443 vào container
  • Ánh xạ ổ đĩa vmssql vào thư mục /var/opt/mssql (nơi lưu DB)
  • Đặt tên container là c-mssql
docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

Như vậy đã có MS SQLServer đang chạy, kết nối đến nó qua cổng 1433.

Kết nối MS SQL Server

Nếu đang sử dụng Windows thì cài đặt và sử dụng công cụ SSMS (SQL Server Management Studio ) là công cụ tốt nhất để kết nối và quản lý SQL Server (Tải về SSMS).

Trong container c-mssql có sẵn công cụ sqlcmd (/opt/mssql-tools/bin/sqlcmd) để có thể kết nối, tương tác với SQL SERVER ngay tại container.

Vào container đang chạy:

docker exec -it c-mssql bash

Tại đây nếu muốn đổi password của sa gõ:

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'oldpassword' \
   -Q 'ALTER LOGIN SA WITH PASSWORD="newpassword"'

Thực hiện kết nối SQL Server

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password789'

Nếu kết nối thành công, xuất hiện dấu nhắc 1> để nhập và chạy các query (T-SQL), gõ các query xong để thi hành cần gõ GO ở dòng mới.

Ví dụ một vài Query

-- liệt kê các database:
select name from master.dbo.sysdatabases

-- chuyển database:
use database_name


-- chuyển database:
use database_name

Azure Data Studio

Nếu muốn dùng một ứng dụng có giao diện trực quan để kết nối, quản lý, chạy các query tương tự như (SQL Server Management Studio) chạy được trên macOS, Linux, Windows thì công cụ Azure Data Studio của MS là lựa chọn rất tốt, đây là phần mềm nguồn mở, các chức năng có thể bổ sung bằng các extension.

Tải về và cài đặt tại: Azure Data Studio.

Kết nối với MS SQL Server

SQL

Tương tác với SQL Server trực quan

SQL
Đăng ký theo dõi ủng hộ kênh