.net core 部署windows docker问题汇总 导出为tar

C:Program Filesdotnetsdk3.1.408NuGet.targets(128,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:srcGrpcServiceTestGrpcServiceTest.csproj]
C:Program Filesdotnetsdk3.1.408NuGet.targets(128,5): error : No such host is known. [C:srcGrpcServiceTestGrpcServiceTest.csproj]
The command 'cmd /S /C dotnet restore "GrpcServiceTest/GrpcServiceTest.csproj"' returned a non-zero code: 1

遇到以上问题是因为你的本机有多个网卡,而你当前上网的网卡不是第一个序号,需要设置一下。
首先需要运行以下命令查看网卡列表,找到你正在上网的网卡,看后边的连接状态。
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object -Property InterfaceMetric -Descending
然后用以下命令来设置默认网卡。
Set-NetIPInterface -InterfaceAlias 'WLAN' -InterfaceMetric 1

Grpc发布:
如果要发布自定义的端口,需要用EXPOSE 5001来指定特殊的端口。
倒数第二行加入ENV ASPNETCORE_URLS http://+:5001

保存图像时使用此构造

Docker save --output=c:YOUR_PATHmy_docker_image.tar e6f81ac424ae(image id)
而当你尝试加载这个图像使用这个build议:

Docker load --input C:YOUR_PATHmy_docker_image.tar
在此之后,您在Docker中看到了您的图像名称和解决这个使用命令标记

Docker tag IMAGE_ID mydockerpapplication

FROM microsoft/dotnet:2.1-aspnetcore-runtime //注意和你的版本要匹配
WORKDIR /app
COPY . . //将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
EXPOSE 5000 //端口号(将容器 5000 端口暴露出来, 允许外部连接这个端口。)
//EXPOSE 443 //Https 端口开启
ENTRYPOINT ["dotnet", "DockerDemo5.dll"] //运行的程序集 改成你自己的

docker build -t servicemanagementgrpc .

.net core 部署windows docker问题汇总
导出为tar

(1)停止容器docker stop zentao
(2)拷贝文件到本地 docker cp zentao:/opt/zbox/app/zentao/config/my.php D:/workspace/docker/zentao

docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0
docker run -it -v /home/dock/:/home/mount/ --name first ubuntu:16.04 bin/bash
冒号之前是本地目录的绝对路径,冒号后是容器内目录的绝对路径,如此新建一个容器,即可实现挂载本地目录.

持久化docker的镜像或容器的方法
Docker的镜像和容器可以有两种方式来导出

docker save #ID or #Name
docker export #ID or #Name
docker save和docker export的区别
对于Docker Save方法,会保存该镜像的所有历史记录
对于Docker Export 方法,不会保留历史记录,即没有commit历史
docker save保存的是镜像(image),docker export保存的是容器(container);
docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
save命令

docker save [options] images [images...]

示例
docker save -o nginx.tar nginx:latest

docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

load命令

docker load [options]

示例
docker load -i nginx.tar

docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

export命令

docker export [options] container

示例
docker export -o nginx-test.tar nginx-test

docker export #ID or #Name > /home/export.tar

其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

import命令

docker import [options] file|URL|- [REPOSITORY[:TAG]]

示例
docker import nginx-test.tar nginx:imp

cat nginx-test.tar | docker import - nginx:imp

拉取.net运行环境
docker pull mcr.microsoft.com/dotnet/aspnet:5.0
docker pull mcr.microsoft.com/dotnet/aspnet:3.1

docker内的目录
windows:c:app
linux:/app