環境 win10
導出容器
可以看出來導出的文件在當前ps目錄
(這樣導出,會在導入報錯,原因說是 windows ps 和 linux bash 有差別)
解決辦法在這裏找到:https://github.com/docker/for-win/issues/660
不要用 > 而是用 -o
導入容器
接下來,我把這個 tar 文件拷到 ubunto 服務器嘗試一下導入
將文件上傳到服務器
服務器當前環境
服務器當前沒有任何容器
執行導入命令
結果出現如下報錯:
Error response from daemon: Untar exit status 1 archive/tar: invalid tar header
原因:不同的操作系統中運行這些命令會產生錯誤。而我運行docker export命令時,用的是Windows PowerShell,服務器是Linux,所以導致這個報錯。
經過修改導出命令後,導入成功了
這裏有點疑問:我原來是導出的容器,這裏導入後,沒有窗口,只有一個鏡像
看圖
運行鏡像
運行失敗。
看這 https://blog.csdn.net/qq_37992410/article/details/120286324
用 save / load
執行成功了
sh 內容
docker run --env=ASPNETCORE_URLS=http://+:80 --env=DOTNET_RUNNING_IN_CONTAINER=true --env=DOTNET_VERSION=7.0.11 --env=ASPNET_VERSION=7.0.11 --workdir=/app -p 5001:80 --restart=no --runtime=runc -d atot-api
一套下來,感覺還行。
- 不用再管理 dotnet core 運行時了,之前安裝 dotnet core 運行時,也花了不少時間。
還是一些困惑:
- 這個鏡像200M,我在開發時難道每次都要上傳200M文件嗎
- 能不能只傳我代碼打包的大小(不到30M),dotnet 環境不想重新上傳
- docker run 這個代碼太長了