ubuntu中使用docker部署.netcore2.1
概述
.netcore发布这么久,到现在才在项目中实际运用,之前算是了解一点,一般找工作都会问是否运用过.netcore,软件研发来说,如果这个技术没用过,觉得挺难,其实不难。.netcore主要是跨平台,可以部署在不同的操作系统上。
本文通过一些实例,将.netcore Api项目部署在linux环境中。
用到的工具
Linux : Linux version 4.18.0-17-generic (buildd@lcy01-amd64-022) (gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1))
Windows与Linux交互工具:MobaXterm 6.6.exe,支持远程连接和上传附件功能
搭建步骤
- 创建.netcore2.1 Api项目
我的IDE是VS 2017,创建一个.netcore Api项目后,目录结果如图
如开始时未添加Docker支持,选择是linux还是windows,具体操作如下
- 修改Docker配置文件,
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE
EXPOSE FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["./ApiNetCore.csproj", "./"]
RUN dotnet restore "ApiNetCore.csproj"
COPY . .
WORKDIR "/src"
RUN dotnet build "ApiNetCore.csproj" -c Release -o /app FROM build AS publish
RUN dotnet publish "ApiNetCore.csproj" -c Release -o /app FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ApiNetCore.dll"]
- 将本地源代码通过MobaXterm上传到Linux目录,显示目录结构如下:
- 开始构造镜像image:运行命令【sudo docker build -t apinetcoredocker:1.0.0 . 】
命令中,【apinetcoredocker】代表镜像名称,可以修改成自己所需要的名称。也可以为镜像添加tag,修改【apinetcoredocker】成【apinetcoredocker:1.0.0】为镜像打上1.0.0的tag标签。命令最后面的【.】号是必要的,是dockerfile在当前目录运行docker的意思。详细命令可查看:http://www.runoob.com/docker/docker-build-command.html。
镜像创建成功如图
- 创建容器并运行
在运行应用程序【sudo docker run --name apinetcoredocker1 -p 8009:80 apinetcoredocker:1.0.0】
-p是8009是容器对外端口,80是容器内机器端口。意思是映射外网8081端口到本地容器80端口。
- 最后在浏览器中输入地址,进行测试
参考实例:https://www.cnblogs.com/alunchen/p/10139356.html
感谢原著分享!
最新文章
- 索尼Sony ATI显卡驱动 Win7 Win8 Win8.1 视频黑屏 解决方法
- 函数中的static静态变量
- Linux下的虚拟Bridge实现
- JS 传值 传址
- [c#]exchange回复,全部回复,转发所遇到的问题
- switch/ifelse 使用总结
- LeetCode Missing Ranges
- Facebook开源项目:我们为什么要用Fresco框架?
- C语言中的结构体,结构体数组
- mysql-5.6.15_winX64在win764位系统下的安装操作步骤总结
- javascript 获取HTML DOM父、子、临近节点
- 【Unix环境高级编程】编写变长参数函数
- 带你重拾JavaScript(2)之console的你所不知道的功能
- VisualVM 分析full GC问题记录
- [Python][小知识][NO.1] Python字符串前 加 u、r、b 的含义
- js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
- 细说Redis(二)之 Redis的持久化
- 《剑指offer》第四十五题(把数组排成最小的数)
- koa 学习资料
- flink-vs.-spark