ocker 是一種開源的容器化平臺,用于構建、發布和運行應用程序。
它可以將應用程序及其依賴項打包到一個獨立的、可移植的容器中,從而實現了應用程序在不同環境中的一致性和可移植性。
如果本地搭建 docker,我們開發人員就可以快速構建、部署和擴展應用程序了,而無需擔心環境差異或依賴項沖突的問題。
硬件:
安裝 Docker Desktop 需要啟用 Hyper-V 和 Windows 容器功能。
【控制面板】-> 【所有控制面板項】-> 【程序和功能】
打開【啟用或關閉 Windows 功能】窗口,勾選:
安裝完成需要重啟才會生效,先不重啟,稍后再重啟。
docker 官網 windows 版下載地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows
下載完成后是一個exe文件【Docker for Windows Installer.exe】
雙擊安裝文件進行安裝,等待一小段時間,安裝完成后會出現下面的窗口:
這時候點擊【close and log out】會重啟電腦。
啟動【Docker for Windows】,啟動命令窗口,輸入命令【docker version】可查看 docker 版本,如:
1.以管理員身份啟動命令窗口,輸入命令【docker search mssql】:
2.輸入命令【docker pull microsoft/mssql-server-linux】下載鏡像:
3.創建并運行容器
輸入命令【docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password01!" -p 1445:1433 --name MSSQL_loan -d microsoft/mssql-server-linux】
4.登錄容器
輸入命令【docker exec -it MSSQL_loan /bin/bash】:
5.連接到 sqlcmd
輸入命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!'】:
6.創建數據庫并進行測試
輸入命令【CREATE DATABASE TestDB】創建一個數據庫:
1> CREATE DATABASE TestDB
2> go
輸入命令【select name,database_id,create_date from sys.Databases】查看已存在的數據庫:
7.使用客戶端 mssms 連接創建的 sqlserver
服務器名稱就是你的本地【IP,端口】,如本次前面設置的是1445,
1.在容器內創建一個目錄
如果是繼續上面的步驟,則先退出【quit】到容器管理中:
如果沒有登錄容器,則先登錄容器【docker exec -it MSSQL_loan /bin/bash】。
使用命令【mkdir /var/opt/mssql/backup】創建一個目錄,然后再退出容器:
3.將數據庫備份文件(.bak文件)復制到容器中
使用命令【docker cp E:/job/techTest/docker/sqlserver/Loan.bak MSSQL_loan:/var/opt/mssql/backup】進行復制:
4.還原數據庫
先登錄容器【docker exec -it MSSQL_loan /bin/bash】,列出備份數據文件的邏輯名,使用命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!' -Q 'RESTORE FILELISTONLY FROM DISK="/var/opt/mssql/backup/Loan.bak"' | tr -s ' ' | cut -d ' ' -f 1-2】:
還原數據庫,使用命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!' -Q 'RESTORE DATABASE Loan FROM DISK="/var/opt/mssql/backup/Loan.bak" WITH MOVE "Loan" TO "/var/opt/mssql/data/Loan.mdf" , MOVE "Loan_log" TO "/var/opt/mssql/data/Loan.ldf"'】:
注:個人不是很推薦在windows中安裝 docker,日常使用 docker 還是建議安裝在 linux 上的,當然沒有 Linux 服務器的情況下,windows 安裝 docker 也是不錯的選擇。
一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口。容器有點像輕量級的虛擬機,能夠提供虛擬化的環境,但是成本開銷小得多。
Docker是基于linux的,在win10中首先需要安裝wsl2。wsl全稱Windows Subsystem for Linux,讓win10能夠原生運行Linux二進制可執行文件的兼容層,且不會產生傳統虛擬機或雙啟動設置開銷。
wsl2安裝步驟參照微軟官方教程https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package步驟一到五
參照Docker官方說明https://docs.docker.com/docker-for-windows/wsl/
Docker原始鏡像源在國外,可在Docker設置中的registry-mirrors項添加國內鏡像源加速。
Docker安裝完成后進入powershell輸入
docker run hello-world
如果出現如下信息表示Docker安裝成功。
docker成功安裝后提示信息
Docker默認安裝在c盤且安裝過程中不可修改安裝位置,如果c盤剩余空間太小很不方便,基于hyper-v的Docker Desktop可安裝好后在設置中直接修改位置,Docker Desktop WSL 2 backend可按照如下過程轉移至其他位置:
1)刪除所有容器:
可進入powershell執行以下命令
docker rm $(docker ps -a -q)
或在Docker Desktop中手動刪
2)關閉所有發行版
wsl --shutdown
3)備份已有image數據
wsl --export docker-desktop-data E:\docker-desktop\docker-desktop-data.tar
最后的E:\docker-desktop\docker-desktop-data.tar是備份路徑,可視情況自行修改
4)注銷當前的docker-desktop-data發行版
wsl --unregister docker-desktop-data
5)重新導入備份的docker-desktop-data
wsl --import docker-desktop-data E:\docker-desktop\data E:\docker-desktop\docker-desktop-data.tar --version 2
E:\docker-desktop\data為指定的Docker新存儲路徑
E:\docker-desktop\docker-desktop-data.tar為第3)步備份的地址
6)重新運行Docker Desktop
安裝所需的鏡像。這里使用的是deepo(https://github.com/ufoym/deepo),集成了常見的深度學習庫和相應的環境
docker pull ufoym/deepo:cpu
vscode是當前最流行的IDE之一,用過的都說好。在vscode中與容器連接非常簡單,步驟如下:
vscode中連接container
以后再次使用時,只需先啟動container:
docker container start docker-python
之后直接執行上述第三步即可