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