docker 容器的導出和導入

環境 win10

導出容器

image

可以看出來導出的文件在當前ps目錄

(這樣導出,會在導入報錯,原因說是 windows ps 和 linux bash 有差別)

解決辦法在這裏找到:https://github.com/docker/for-win/issues/660

不要用 > 而是用 -o

image

導入容器

接下來,我把這個 tar 文件拷到 ubunto 服務器嘗試一下導入

將文件上傳到服務器

image

服務器當前環境

服務器當前沒有任何容器

image

執行導入命令

結果出現如下報錯:

Error response from daemon: Untar exit status 1 archive/tar: invalid tar header

原因:不同的操作系統中運行這些命令會產生錯誤。而我運行docker export命令時,用的是Windows PowerShell,服務器是Linux,所以導致這個報錯。

經過修改導出命令後,導入成功了

image

這裏有點疑問:我原來是導出的容器,這裏導入後,沒有窗口,只有一個鏡像

看圖

image

運行鏡像

運行失敗。

看這 https://blog.csdn.net/qq_37992410/article/details/120286324

用 save / load

image

image

image

執行成功了

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

一套下來,感覺還行。

  1. 不用再管理 dotnet core 運行時了,之前安裝 dotnet core 運行時,也花了不少時間。

還是一些困惑:

  1. 這個鏡像200M,我在開發時難道每次都要上傳200M文件嗎
  2. 能不能只傳我代碼打包的大小(不到30M),dotnet 環境不想重新上傳
  3. docker run 這個代碼太長了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章