docker 容器的导出和导入
环境 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 这个代码太长了