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 80 expose 443 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的意思。详细命令可查看:。
镜像创建成功如图
- 创建容器并运行
在运行应用程序【sudo docker run --name apinetcoredocker1 -p 8009:80 apinetcoredocker:1.0.0】
-p是8009是容器对外端口,80是容器内机器端口。意思是映射外网8081端口到本地容器80端口。
- 最后在浏览器中输入地址,进行测试
参考实例:
感谢原著分享!
下一篇: Linux开机自启动脚本
推荐阅读
-
ASP.NET Core部署前期准备 使用Hyper-V安装Ubuntu Server 16.10
-
使用Docker部署 spring-boot maven应用的方法
-
Linux下Docker CE使用从包中安装的方式详解
-
Ubuntu Docker 的安装部署及简单应用
-
Ubuntu中Opencv的安装使用教程
-
使用docker -v 和 Publish over SSH插件实现war包自动部署到docker的操作步骤
-
ubuntu中snap包的安装、更新删除与简单使用
-
Mac下部署springBoot项目到Docker中(demo)
-
ubuntu服务器上快速部署docker的方法
-
.net core3.0部署Linux服务器 使用Docker容器和Nginx反代理教程