記錄Docker的-v指令使用 前言 之前我淺學了一下docker,方便部署.net項目(部署的是打包之後的項目) dockerfile文件如下: FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 5031 EX ...
記錄Docker的-v指令使用
前言
之前我淺學了一下docker,方便部署.net項目(部署的是打包之後的項目)
dockerfile文件如下:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 5031
EXPOSE 7031
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . .
ENTRYPOINT ["dotnet", "Personalblog.dll"]
然後下載鏡像,創建容器,都是使用的如下命令:
docker build -t app .
docker run -d -p 80:80 --name app app
問題出現
如果只是簡單的使用上面的命令,是可以正確的部署項目,但是會出現一個問題,就是我項目如果更新了的話。我需要先刪除容器,還要刪除鏡像才能重新部署。如果我只是單純的刪除容器重新部署的話,項目是不會更新的。
為什麼會出現這個原因呢?
就是因為我沒有掛載目錄,docker預設掛載了一個隨機名的目錄,如果我不刪除鏡像,無論我創建多少個容器,項目還是不會變。
問題解決
如何解決這個問題,很簡單,只需要使用-v
指令就行了
如下:
docker run -d -p 80:80 -v 項目路徑:/src --name app app
這樣子部署容器之後,鏡像中就會將掛載路徑指向你的項目路徑,這樣子每次項目更新只需要刪除容器,然後重新創建容器即可。
註意:這是.net項目,掛載路徑為/src,其他的項目還沒瞭解,我試著改過這個掛載路徑,但是不太行,創建容器的時候,容器中會自動給你創建一個src目錄,如果有解決辦法可以評論該篇文章,迫切希望各位大佬解答我的疑惑。
擴展
可以使用docker inspect 鏡像名
查看掛載路徑,找到Mounts
查看掛載信息。