之前已經寫過 SQL Server Container 快速入門,這能快速把一個 SQL Server 建立起來,但是要還原資料庫的話,則還要先把備份檔案放到容器裡面。 而今天就是要來筆記一下,如何把檔案放到容器裡面。

說明

今天的案例會以 northwind 的資料庫 bak 檔案做為示範。 首先我已經將容器化的 SQL Server 執行起來,但是打開備份功能的時候,會發現路徑是容器裡面的路徑,如下圖。

bak pathbak path

所以我們現在要做的事情,把 bak 檔案放到容器 var/opt/mssql/data 路徑底下。

複製檔案與還原資料庫

先使用 docker ps 看容器的 ID 是哪一個

Container IdContainer Id

接下來就可以使用 docker cp 指令將檔案複製到指定資料夾,以下方為例子我將 Northwind.bak 檔案複製到 容器 1840e5/var/opt/mssql/data位置上

bash
  • bash
1
docker cp Northwind.bak 1840e5:/var/opt/mssql/data
copy bakcopy bak

複製完了以後,就可以看到我可以選擇該 bak 檔案,做還原的動作了。

copied bakcopied bak

另外要將檔案從容器裡面複製出來也很簡單,只要對調複製的路徑就好,例如下方的指令代表,要把容器 /var/opt/mssql/data/Northwind.bak 的檔案複製出來到當下的路徑
docker cp 1840e5:/var/opt/mssql/data/Northwind.bak ./

延伸閱讀

[Copying files from host to Docker container]
[docker cp]