M1 上使用 MS SQL Server By Docker 續 
如何在 PD 環境中使用 SSMS 連線至 Mac 中的 SQL Server 服務 
伺服器類型:資料庫引擎
伺服器名稱:10.211.55.2(For Parallel Desktop)
驗證:SQL Server 驗證
登入:參考啟動 container 的指令 or <docker-compose.yml>
密碼:參考啟動 container 的指令 or <docker-compose.yml>
如何確認 VM 連線到 Mac 的 IP
- 在 terminal 輸入以下指令
 
ifconfig- 測試連線中 的 
inetIP 即為 VM 連線 Mac 的 IP 
如果你使用以下指令啟動 docker container 
docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPass@word" -e "MSSQL_PID=Developer" -e "MSSQL_USER=SA" -p 1433:1433 -d --name=sql mcr.microsoft.com/mssql/server:2022-latest將既有的 ldf, mdf 放入上方 container 裡面的 /var/opt/mssql/data/ 
- use terminal.app
 - cd to your folder which contains ldf, mdf file
 
docker cp <your-database>.mdf sql:/var/opt/mssql/data/docker cp <your-database>.ldf sql:/var/opt/mssql/data/確認 container 中 /var/opt/mssql/data 中資料夾內 ldf, mdf 權限設定 
docker exec -it -u root sql /bin/bashchmod 640 Northwnd.ldf Northwnd.mdfchown mssql:root /var/opt/mssql/data/Northwnd.ldf /var/opt/mssql/data/Northwnd.mdfctrl + c退出 bash
Attach Database through SSMS 
sql
CREATE DATABASE YOURDBNAME
ON (FILENAME = '/var/opt/mssql/data/<file_name>.mdf'),
(FILENAME = '/var/opt/mssql/data/<file_name>.ldf')
FOR ATTACH;如何查看當前開啟的 docker container 
docker psCONTAINER ID   IMAGE                              COMMAND                   CREATED          STATUS          PORTS                              NAMES
<your_conainer_id>   mcr.microsoft.com/mssql/server:2022-latest  "/opt/mssql/bin/perm…"   29 minutes ago   Up 29 minutes   1401/tcp, 0.0.0.0:1433->1433/tcp   sql如何停止特定的 container 
docker stop <container_id>如何查看所有的 container 
docker container list -a如何啟動既有的 container 
docker start <container_id>M1 上使用 MS SQL Server By Docker Compose 
安裝 docker 
資料夾結構 
- <自訂的資料夾名稱> 
- db-data(存放資料 mdf, ldf 檔案的資料夾,請先自己建立一個空的資料夾)
 - docker.compose.yml
 - README.md
 
 
新增名為 docker-compose.yml 的檔案,內容輸入以下 
yml
version: '3'
services:
  sql-server:
    image: mcr.microsoft.com/mssql/server:2022-latest
    platform: linux/amd64
    ports:
      - "1433:1433"
    restart: always
    environment:
      ACCEPT_EULA: "Y"
      MSSQL_SA_PASSWORD: "MyPass@word"
      MSSQL_PID: "Developer"
      MSSQL_USER: "SA"
    volumes:
      - ./db-data:/var/opt/mssql/data如何開啟資料庫的服務 
- 在 termainal 移到資料夾的目錄底下
 
cd <自訂的資料夾名稱>- 輸入以下指令,會執行 docker-compose.yml 底下的所有服務
 
docker compose up如何關閉資料庫的服務 
- 在 termainal 移到資料夾的目錄底下
 
cd <自訂的資料夾名稱>- 輸入以下指令,會關閉 docker-compose.yml 底下的所有服務
 
docker compose down如何匯入既有的 ldf, mdf 資料庫檔案 
方法一 
- 直接將既有資料庫 ldf, mdf 檔案放在 
<自訂的資料夾名稱>底下的db-data 
方法二 
如何在 PD 環境中使用 SSMS 連線至 Mac 中的 SQL Server 服務 
- 伺服器類型:資料庫引擎
 - 伺服器名稱:10.211.55.2
 - 驗證:SQL Server 驗證
 - 登入:<參考 docker-compose.yml>
 - 密碼:<參考 docker-compose.yml>
 
確認資料夾內 ldf, mdf 權限設定 
cd db-data
chmod 700 <file_name>.ldf
chmod 700 <file_name>.mdfAttach Database through SSMS 
sql
CREATE DATABASE YOURDBNAME
ON (FILENAME = '/var/opt/mssql/data/<file_name>.mdf'),
(FILENAME = '/var/opt/mssql/data/<file_name>.ldf')
FOR ATTACH;