Ubuntu16.04 Docker中发布.NetCore2.1项目

win10 Vs2017开发的.NetCore2.1项目,需要发布到我的虚拟机Ubuntu16.04  Docker中;大概步骤如下:

1、Ubuntu16.04  Docker安装

2、Docker 中安装MSSql

3、Vs2017开发的.NetCore2.1项目(简单增删改查)

4、Vs2017发布可移植项目(发布到linux)

5、构建Docker镜像

6、浏览效果

 

1、Ubuntu16.04  Docker安装 

详细安装步骤参考我的博客 https://www.cnblogs.com/Martincheng/p/9841977.html

 

2、Docker 中安装MSSql

详细安装步骤参考我的博客 https://www.cnblogs.com/Martincheng/p/9856875.html

 

3、Vs2017开发的.NetCore2.1项目(简单增删改查)

详细步骤参考我的博客 https://www.cnblogs.com/Martincheng/p/9833413.html

 

4、Vs2017发布可移植项目(发布到linux)

4.1、vs2017把.NetCore项目发布打包 (目标运行时选择可移植) 

 

4.2、将本地发布好的文件copy到Ubuntu

PS:我把publish目录copy 到Ubuntu虚拟机netcoreapp2.1目录下

 

5、构建Docker镜像

5.1、创建Docker文件

touch  Dockerfile

5.2、VI修改Dockerfile文件

vi 经常使用的指令 a(inser模式 允许修改和删除)修改完按esc 退出inser模式   :w(保存修改的文件):q(退出文件)

# 添加基础镜像
FROM microsoft/dotnet:2.1-aspnetcore-runtime
#容器中系统的工作空间
WORKDIR /publish
#拷贝当前文件夹下的文件到容器中系统的工作空间
COPY .  . 
#设置Docker容器对外暴露的端口
EXPOSE 80
#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
#使用ENTRYPOINT ["dotnet","系统启动的dll"]
#或使用 CMD ["dotnet","系统启动的dll"]
ENTRYPOINT ["dotnet", "NetCoreDemo.dll"]

PS:NetCoreDemo.dll 系统启动的dll

    publish 目录需要才是NetCoreDemo.dll(publish当前目录名称)

    COPY .  .(COPY [选项] 源文件或目录 目标文件或目录)不copy 后面两个.注意中间空

5.3、构建镜像

 

docker build -t netcoredemo2:1.0.0 . 

  PS:   netcoredemo2(镜像名称)

           1.0.0 . (1.0.0版本号后面跟的.非常重要非常重要非常重要)

 

 成功构建镜像

docker images

 

运行构建的镜像 

docker run --name=netcoreproject2 -p 8082:80 -d  netcoredemo2:1.0.0 

 

PS: netcoreproject2(容器名称)

      netcoredemo2(上面构建镜像)

      8082(对外端口)

到这容器名字为netcoreproject2运行起来了

 

查询容器启动日志

docker logs netcoreproject2

netcoreproject2容器名称

 

6、浏览效果

 虚拟机本地浏览效果

 

 

 域IP浏览

 

posted on 2018-11-01 15:45  Martin cheng  阅读(702)  评论(1编辑  收藏  举报

导航