發表文章

docker cp mdf read only 權限問題

在windows cmd下執行 docker cp所複製的當案權限為root 會遇到的問題是 當使用SQL Server的時候匯入MDF檔案只有read only 因為當使用SMSS做匯入的時候所使用的權限者MSSQL 而權限低於檔案的root權限 所以得到的權限不完整 改為ubuntu.exe 開啟後 輸入docker cp複製檔案 這樣檔案權限就跟使用SMSS時一樣囉

Docker container 映射目錄下檔案

以MSSQL為例  docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=自行輸入密碼" -e "MSSQL_DATA_DIR=/var/opt/mssql/data" -e "MSSQL_BACKUP_DIR=/var/opt/mssql/backup" -v /DockerStorage/MSSQL/Backup :/var/opt/mssql/backup -v /DockerStorage/MSSQL/DATA:/var/opt/mssql/data -v /DockerStorage/MSSQL/Log:/var/opt/mssql/log -p 1433:1433 --name MSSQL --hostname MSSQL -d mcr.microsoft.com/mssql/server:latest 藍色為本機位置 紅色為虛擬機位置 此設定將虛擬機資料應射到本機 PS本機應設位置丟入檔案並不會應射回虛擬機 映射 方向性為 本機<<<<虛擬機 也可以另外使用複製檔案到路徑下方式 docker cp 路徑及檔案名稱   容器名稱:路徑

Docker備份載入tar 將image儲存成.tar檔案

備份容器Continer為新的Image 查詢目前container狀態獲得目前想備份的容器ID Cmd輸λ  docker ps 橘色 為container id 紅色 部分 輸入container要備份的Image名稱 Cmd輸λ  docker commit -p XXXXXXXXX backup_image_name 備份tar 橘色 自訂路徑檔案名稱最後加上.tar 紅色 部分輸入docker要備份的Image名稱 Cmd輸λ docker save -o X:\xxxxxx.tar   rickimages/msql2017 載入tar 若要將tar恢復,只要將備份檔案載入Image 橘色 改為備份檔案tar的實體路徑 Cmd輸λ docker load -i  X:\xxxxxx.tar

Docker Port佔用問題

    曾經遇過不少次container離奇消失的問題,再重載入image後docker會跳出提示Error response from daemon: Ports are not available: listen tcp... 但是CMD查詢卻沒有發現Port被任何程式占用,試過各種方法,最後我的解決方式如下,應該是虛擬機wsl占用到需要使用的Port了。 Cmd輸入指令依序執行 1.關閉 hyper-v: dism.exe/Online/Disable-Feature:Microsoft-Hyper-V 2.‎完成關閉hyper-v後‎,‎‎加入想保留的Port‎,橘字的部分變更為自訂參數: netsh int ipv4 add excludedportrange protocol=tcp startport= 50051 numberofports=1 3.重啟 hyper-V: dism.exe/Online/Enable-Feature:Microsoft-Hyper-V/All 參考: https://github.com/docker/for-win/issues/3171#issuecomment-459205576

WebStorm資料夾右鍵開啟專案

當WebStorm因為某些情況下 資料夾右鍵開啟專案的方式不工作! 這時候只需要去Regedit新增一些東西就行了 鍵入 windows + R 後輸入 Regedit按下確認 開啟登入編輯程式 在 HKEY_CLASSES_ROOT 目錄下 找到 Directory 目錄下 找到 Shell 點右鍵新增機碼 自訂一個名稱這邊取名"WebStorm" 左鍵點擊WebStorm 在右邊預設值下方新增新字串值 命名Icon 並且在資料的部分 帶入程式路徑 例如: C:\Users\XXXX\AppData\Local \JetBrains\Toolbox\apps\WebStorm \ch-0\XXXXX\bin\webstorm64.exe 以右鍵點擊WebStorm後新增一個機碼command 在修改command內的預設值 帶入程式路徑 加上 %1 例如: C:\Users\XXXX\AppData\Local \JetBrains\Toolbox\apps\WebStorm \ch-0\XXXXX\bin\webstorm64.exe %1 大功告成!