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、浏览效果
详细安装步骤参考我的博客 https://www.cnblogs.com/Martincheng/p/9841977.html
详细安装步骤参考我的博客 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) 编辑 收藏 举报