.Net Core部署在Linux . Docker上
2021-01-29 18:16
标签:base mode from 官方 没有 上层建筑 lrzsz 云服务器 打开 看名字也知道了, 万事开头难,作为一个"云"开发工程师, 除了万事开头难,其实另外的一个就是很多细节需要注意, 如果你只对.Net Core有所了解, 你如果感觉每次学习一个新知识都感觉很吃力, 原来的{Dockerfile}里面东西太多了,当我的Linux发布的时候, 需要注意的一点就是 然后将发布目录中的文件上传到Linux服务器即可. 主要用到的命令 一些辅助命令 提示: invalid argument "coreDocker1.1" for "-t, --tag" flag: 执行{docker build -t Name .}花费的时间还是比较长... rz -eb 最大的坑还是陷在了端口这里... 测试端口也是打开的. .Net Core部署在Linux . Docker上 标签:base mode from 官方 没有 上层建筑 lrzsz 云服务器 打开 原文地址:https://www.cnblogs.com/love-zf/p/13200404.html前言
要想将.Net Core应用部署到Linux的Docker中,
需要一些前提条件
第一步当然是去网上找相关文档[微软官方文档,博客,书籍...]
看着博客上写着挺简单的,
但是自己由于不知道其中缘由,可能一个标点就导致了全军覆没...
对Linux和Docker以前没有接触过.
你与其去将Linux学习个把月,
再回来学习如何将.Net Core如何部署在Docker上.
倒不如趁这个机会,学习一下Linux.
只是啃书,远远不如在搞事情的时候啃书,其中更重要是要多思考.
总觉很难理解,
一个原因可能因为你积累不够,并且只是学习的表皮知识,
没有真正去运用它.
你的地基没打牢固,所以在构建上层建筑的时候,
会感觉摇摇欲坠.
另外一个原因可能就是学习方法有问题了....Net Core 发布
报错#原来的Dockerfile内容
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["DockerCoreSample.csproj", ""]
RUN dotnet restore "./DockerCoreSample.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "DockerCoreSample.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerCoreSample.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerCoreSample.dll"]
#修改后的Dockerfile内容
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
COPY . .
EXPOSE 11000
ENTRYPOINT ["dotnet", "DockerCoreSample.dll"]
Dockerfile.属性.
复制到输出目录:始终复制
我这里用的XShell
和Linux一个插件"lrzsz"Docker相关命令
#进入到程序的发布目标
cd usr/core/
#创建 image文件 (-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签 PS:注意最后的 点)
docker build -t coredocker1.0 .
#生成容器,每运行一次,就会新建一个容器
#(这里的21000:11000 代表把容器内的11000端口映射到你主机的21000端口,容器端口在后)
docker run --name coredocker -it -p 21000:11000 coredocker1.0
#查看docker的版本 version
docker -v
#开启Docker服务
systemctl start docker.service
#开机启动Docker服务
systemctl enable docker.service
#查看Docker服务启动状态
systemctl status docker.service
#重启Docker服务
systemctl restart docker.service
#查看所有容器
docker ps -a
#容器.启动
docker start {容器名称}
坑.
# 错误示范
docker build -t coreDocker1.0
invalid reference format: repository name must be lowercase
See ‘docker build --help‘.
是我云服务器的网络太慢嘛?
上传失败,可能因为Linux服务器的某些文件已经被占用了,无法替代了.
先在{usr/core}执行{rm -rf *}删除这些文件.
#Dockerfile EXPOSE
#原来错误写法
EXPOSE 11000,11001
#修改后正确写法
EXPOSE 11000 11001
我的腾讯云服务器IP:11000
访问总是失败,
然后我去腾讯云服务器,安全组将该端口打开了.
还是不行...telent X.X.X.X 11000
实在不行,我重启下电脑就可以了...
太奇怪了???参考文档