vs2017发布项目服务器端口,vs2017 开发.NetCore部署docker

一、环境

操作系统:windows 10 64bit

开发环境:vs2017

部署环境:docker  — windows

二、准备

安装docker:

三、新建并发布项目

打开 vs2017,新建.netCore Web 应用程序,选择web应用程序,勾选“启用Docker支持”,点击确定。

4eba1028106b5e527c270cacac445815.png

新建完成的项目目录如下:

91875dbc8990e0c22cacc2920e4edf0e.png

右键项目发布后,选择发布到文件,这种方式发布的项目只适用于windows平台运行

996f0ef4babcb7d941790548429cfc2a.png

想要项目在linux、osx系统上运行,需要用命令发布,也可能有别的方式,暂时只知道这一种:

1.dos命令转到项目的主目录下

2.运行命令:

dotnet publish --runtime ubuntu.16.04-x64

--runtime后面跟的是运行时环境的操作系统

3.如果上面的命令成功了,你会看到生成了这样一个文件夹:binDebug

etcoreapp2.0ubuntu.16.04-x64publish,这里面的文件就是发布好的项目文件了,我们将publish文件夹拷贝到对应的操作系统下,运行命令dotnet NetCore.dll (NetCore.dll指的是主程序文件),不出意外的话项目就可以正常启动了,如果出意外的话,请进行以下检查:

a、发布时输入的目标系统是否正确

b、服务器是否正确安装了.net sdk

四、创建Dockerfile文件

在发布目录下创建一个文本文档Dockerfile.txt ,或者在Linux系统创建一个文件Dockerfile

内容:

# 声明使用的基础镜像

FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS base# 设置工作目录

WORKDIR/app

# 将本地应用拷贝到 容器/app/ 目录下 "./"代表的就是/app 因为dockerfile文件和程序文件都在发布文件夹下 所以两个目录是一样的

COPY ./ ./#设置环境变量,修改.netCore 默认的80端口

ENV ASPNETCORE_URLS http://+:5000

# 设置导出端口

EXPOSE5000# 指定应用入口点 NetCore.dll代表的是主程序文件

ENTRYPOINT ["dotnet", "DockerTest.dll"]

编辑完成后去掉文件的后缀名。

五、创建镜像并运行

打开命令界面,cd到发布文件夹下:

执行命令:

docker build -t mycore . (注意命令中的最后一个点 代表的是命令从你的当前目录下执行)

或者:

docker build 发布文件目录 -t mycore

其中 mycore为自定义镜像名称,如下所示:

5ee8056623a91dedc31bb016516f90a4.png

然后继续执行命令运行:

docker run -it -p 5000:5000 mycore

这里的5000:5000 代表把容器内的5000端口映射到你主机的5000端口

b6158f0d03d6adfb2f3fc9c98b128503.png

然后 http://localhost:5000 就可以访问啦!

7458e52b5d19127604c156ca429df06a.png

六、附docker命令

docker pull microsoft/dotnet //从docker仓库拉取一个名称为“microsoft/dotnet”的镜像

docker build light //构建一个名称为light的容器

docker run hello-world //运行hello-world容器

docker images //查看所有镜像

docker rmi [image_id] //删除一个imageid的镜像

docker rmi $(docker images -q) //删除所有镜像

docker ps -a //查看所有容器运行状态

docker rm [container_id]//删除一个containerid的容器(实例)

docker rm $(docker ps -a -q) //删除所有容器

七、修改.NetCore端口号

修改.net core的默认端口号,除了上文中提到的增加Dockerfile文件中环境变量外,或也可通过修改项目中program.cs文件中的BuildWebHost函数,修改启动端口号:

WebHost.CreateDefaultBuilder(args)

.UseUrls("http://*:5000") //修改服务在docker中启动端口

.UseKestrel()

.UseContentRoot(Directory.GetCurrentDirectory())

.UseIISIntegration()

.UseApplicationInsights()

.UseStartup()

.Build();

八、遇到的问题及解决方案:

docker调试项目时出现“错误 CTC1005 Your Docker server host is configured for 'Linux', however your project target 'windows' ”,即:docker配置的环境与项目目标环境不一致。

切换docker的container类型至“windows”

fa260fdeaac78468b442efb69254b61e.png

后又出现了“尝试生成Docker镜像时发生错误”,重新配置了切换到Windows环境后的Daemon。

65e10ee492d8c4e5198619fb939a8147.png

关于Https重定向的问题可参考:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值