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 这个代码太长了
posted @ 2023-09-14 08:57  妖精代码  阅读(228)  评论(0编辑  收藏  举报