Docker安裝使用教程及項目部署
Docker安裝使用教程及項目部署
Docker是什么
Docker是一個容器化開源平臺,它使開發者可以再容器中封裝應用程序,以及其依賴的所有組件,包括操作系統、庫文件、環境變量等,并以輕量級、可移植的方式進行交付和部署.
Docker的三大核心概念是:
鏡像(Image):鏡像是Docker的基本構建塊,它是一個只讀的模板或藍圖,用于創建Docker容器。鏡像包含了運行應用所需的操作系統、應用程序代碼、運行時依賴項以及各種配置文件。你可以使用Docker命令從鏡像創建容器。
容器(Container):容器是基于鏡像創建的運行實例。每個容器都是一個獨立的、安全隔離的運行環境,其中包含了必要的運行時組件和應用程序。容器可以啟動、啟動、停止、刪除并重啟。
倉庫(Registry):倉庫是用于存儲和分享Docker鏡像的地方。Docker Hub是官方的公共倉庫,你可以在其中找到大量的官方和社區創建的鏡像。此外,你還可以搭建自己的私有倉庫來存儲和管理自己的鏡像。
為什么選擇Docker
容器是一種輕量級的虛擬技術(是第二代云計算技術),但是與傳統虛擬機不同,容器的技術更加高效,輕量因為它們共享主機操作系統的內核,相互之間的隔離程度更低.Docker利用Linux內核的cgroups和命名空間等特性,提供了一種隔離的運行環境,應用程序可以在容器內部獨立運行,互不影響。
容器類似于是汽車,docker則類似于是一個知名的汽車品牌,但是docker起步比較早,并且發展迅速.
有點老大哥的感覺,雖然存在一些問題(比如,占用資源,安全性漏洞可能會導致宿主機的安全問題,需要用到數據卷來解決持久化問題,存在一定的學習曲線和復雜性).有類似的容器技術在此基礎上做出了優化,但是奈何docker功能過于強大,目前docker容器技術依舊是主流.
在一般情況下,容器,鏡像,應用程序之間的關系是一對一的,目的是,更加容易管理和維護,降低了相互干擾的風險.
但是在特殊情況下,可以使一對多的關系,但是要保證多個之間相互沒有沖突,并每個都可以獨立啟動和停止.
docker技術的出現解決了那些問題:
1:應用程序與環境的一致性:在傳統的應用程序部署中,由于生產,開發,測試,的環境不同所以時常會出現程序無法正常運行的問題.Docker 使用容器化技術,將應用程序及其依賴項打包成容器,使得應用程序能夠在不同的環境中以相同的方式運行,保證了應用程序環境的一致性。
2快速部署和交付:傳統的應用程序部署通常需要手動配置環境、安裝軟件和調整參數,耗時且容易出錯。Docker 提供了一種快速部署和交付應用程序的方式,通過使用容器鏡像,可以快速地在目標主機上啟動一個容器,并將應用程序及其依賴項一并交付,極大地簡化了部署過程,提高了交付效率。
3資源利用率優化:傳統的虛擬化技術通過在物理主機上運行多個虛擬機來實現資源的利用率優化。然而,每個虛擬機都需要運行一個完整的操作系統,占用了較多的資源。Docker 使用操作系統級別的虛擬化技術,共享主機操作系統內核,多個容器可以運行在同一個宿主機上,實現了更高的資源利用率。
4運維簡化:Docker 提供了一套簡單易用的命令行接口和管理工具,使得容器的創建、啟動、停止和管理變得非常方便。通過使用 Docker,開發人員和運維團隊可以更好地協作,簡化應用程序的部署和管理流程,減少了運維的工作量。
安裝教程:
下載Docker客戶端
https://www.docker.com/products/docker-desktop
開啟虛擬化
打開控制面板 - 程序和功能 - 啟用或關閉Windows功能,勾選Hyper-V,然后點擊確定即可,點擊確定后,啟用完畢會提示重啟系統,我們可以稍后再重啟。

安裝WSL2(Windows Subsystem for Linux)
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
配置阿里云鏡像加速
獲取阿里云鏡像加速器地址
登錄阿里云
阿里云-計算,為了無法計算的價值 (aliyun.com)




配置Docker客戶端加速器
打開Docker客戶端
右鍵點擊任務欄Docker,點擊Settings,找到Docker Engine 添加
"registry-mirrors": [
"https://xxxx.xxxx.aliyuncs.com"(阿里云鏡像加速器地址)
]

參考文檔:
(2條消息) win10安裝docker教程_Bruce-li__的博客-CSDN博客
(2條消息) window11安裝docker小白教程_windows11安裝docker_在養一只虎紋?的博客-CSDN博客
項目部署
后端API項目
Web解決方案 右鍵新增支持Docker 生成Dockerfile 文件 (將本地的需要的依賴項以及配置進行說明,在Docker創建鏡像時使用).

將Dockerfile文件放到與控制器文件同等目錄下 在資源文件框中輸入cmd
進入命令提示符: docker build -t 鏡像名 .(最后的點不能少)
輸入 docker images 查看鏡像是否生成
創建容器將鏡像放到容器上運行
docker run -d --name 容器名稱 -p 端口號:端口號 鏡像名稱 也可以在客戶端進行操作 點擊左側images 找到生成的鏡像 點擊三角符號運行 配置端口號
docker ps 查看正在運行的容器
docker ps -a 查看所有的容器
容器正常運行即可訪問接口
也可以通過 docker exec -it 容器名稱 /bin/bash 進入容器內部 (一般用于前端執行命令)
前端Vue 項目
- 在項目目錄下創建Dockerfile 文件 (大小寫需要嚴格遵循)

- 構建Dockerfile
# 使用基礎的 Node.js 鏡像作為基礎鏡像(根據項目實際需要node版本更改)

FROM node:19
# 設置工作目錄
WORKDIR /app
# 復制 package.json 和 package-lock.json 到工作目錄
COPY package*.json ./
# 安裝項目依賴(根據不同版本Node 安裝依賴包命令適當更改)
RUN npm install
# 將項目文件復制到工作目錄
COPY . .
# 構建 Vue 項目
RUN npm run build
# 暴露容器的端口號
EXPOSE 8080
# 運行應用
CMD ["npm", "run", "serve"]
- 打開Dockerfile所在文件(用資源管理器打開) 地址欄輸入Cmd進入命令提示符

- 輸入docker build -t 鏡像名稱 .

- docker images 查看生成鏡像

- docker run -d --name 容器名稱 -p 端口號:端口號 鏡像Id

運行容器成功,訪問端口.
Docker常用命令
鏡像相關操作:
- docker images:列出本地的鏡像列表。
- docker pull <image_name>:從鏡像倉庫中下載指定的鏡像。
- docker build -t <image_name> <Dockerfile_path>:根據 Dockerfile 構建新的鏡像。
- docker push <image_name>:將本地鏡像推送到鏡像倉庫。
- docker rmi <image_name>:刪除指定的鏡像。
容器相關操作:
- docker run <image_name>:基于鏡像創建并運行新的容器。
- docker ps:列出正在運行的容器列表。
- docker stop <container_id>:停止指定的容器。
- docker start <container_id>:啟動已經停止的容器。
- docker restart <container_id>:重啟指定的容器。
- docker rm <container_id>:刪除指定的容器。
- docker exec -it <container_id> <command>:在正在運行的容器中執行命令。
docker exec -it /bin/bash 進入容器內部

浙公網安備 33010602011771號