.net core Ubuntu下docker部署(精简版)
一、首先先添加一个.netCore 项目,选择启用docker(我用的是vs2019,之前的可能需要手动点击项目添加docker支持)
没有的话需要手动添加
之后你的项目会存在这个dockerfile文件
二、编辑dockerfile文件
1.右键dockerfile属性,选择始终复制
2.修改dockerfile文件内容
这几个要跟项目名一致
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
COPY . /WebApplication1
WORKDIR /WebApplication1
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
之后本地IIS运行一下,确保项目是能够正常运行的
ok,运行没问题,接下来项目发布成文件形式(我这边是存在publish文件下)
得到这些文件
三、接下来到Ubuntu中部署(我这边是用的vmware装的虚拟机)
把文件考到ubuntu来,(考不进来可以用WinScp或者xftp上传文件,具体怎么使用我就不多说了,具体百度)
部署也比较简单,只需要一步一步跟着来就行!
1.进入dockerfile所在的目录,构建一个名字叫做webapp的镜像注意build后面还有一个 . (代表当前构建镜像的上下文路径)
看到这个就代表离成功就差一步之遥啦!只要启动我们刚刚创建好的容器就行了
2. 启动:
docker run --name=webapp -d -p 8044:80 webapp
8044代表你要访问的端口号
出现这个就代表ok啦!
再来看下容器运行情况:docker ps -a
ok,木有问题,最后浏览器访问一下看看?
访问成功!到此就完成啦!
最后,不同的环境可能会出现各种奇奇怪怪的问题,一下提供些解决思路:
1)查看应用启动是否正常,如果有错误日志,复制错误日志去百度搜索!!!!!!!特别重要
2)启动正常,则先在本机使用 CURL "http://localhost:8044/" 访问对应的接口,看是否有响应,如果有的话会返回对应页面的html源码
3)启动正常,且curl有响应,则检查是否有关闭防火墙,或者开放对应的访问端口,开放端口才可以访问
4)腾讯云和阿里云都是有安全组,类似外层防火墙,一定要去web控制台检查是否有开启端口
最后的最后,附带一些参考资料:
1.docker端口映射:https://www.jianshu.com/p/b92d4b845ed6
2.其他博主的简洁部署参考:https://www.jianshu.com/p/85051fbd3873
3.容器使用代码:https://www.runoob.com/docker/docker-container-usage.html