VS发布dotnetCore项目到docker(Windows和centos8)

windows篇

1.首先打开VS2019新建一个项目,这里我们创建一Web应用程序

 

image.png
 

然后注意勾选上Docker支持,这里忘了选也没关系,在解决方案里右键点击项目名称,点击添加,一样可以添加Docker支持,注意需要先安装DockerDesktop。Windows下安装DockerDesktop就不多做介绍了,官网下载exe文件,安装就好。

注意:Windows家庭版无法安装Docker,安装Docker需要Hyper-V的支持,家庭版不包含此组件。

image.png
 

2.项目创建好之后,如果已经添加了Docker支持,则在项目下能看到一个Dockerfile文件。
替换为以下内容

# 添加基础镜像
FROM microsoft/dotnet:2.2-aspnetcore-runtime
#容器中系统的工作目录
WORKDIR /Publish
#拷贝当前文件夹下的文件到容器中系统的工作空间
COPY . /TestDocker

#设置Docker容器对外暴露的端口
EXPOSE 80


#设置时间为中国上海
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone


#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
ENTRYPOINT ["dotnet", "TestDocker.dll"]

参数说明:
FROM -指定所创建镜像的基础镜像
WORKDIR-配置工作目录
EXPOSE-声明镜像内服务监听的端口
COPY-复制内容到镜像
ENTRYPOINT-启动镜像的默认人口命令

3.发布项目

 
image.png
 

这里为什么选择框架依赖,而不是独立呢,其实是Docker中已经有对dotnetcore的支持,直接拉取dotnet core runtime ,然后就可以在这上面运行了,还有一点就是选择独立发布的话,发布的项目比较大。
可以把发布后的文件单独放到一个文件夹里。接下来就是执行docker命令来创建镜像并启动项目了。
首先需要拉取dotnetcore2.2的runtime,命令如下。

docker pull microsoft/dotnet:2.2-aspnetcore-runtime
image.png
 

然后可以看一下有哪些镜像已经存在了。

docker iamges

接着进入咱们的发布后的文件夹。
执行docker build命令创建镜像

docker build -t testdocker .

参数说明:-t 指定容器名称 . 在当前目录上下文寻找dockerfile文件

image.png
 

然后就要启动容器了

docker run --name testdocker -d -p 50879:80 testdocker

参数说明:
-d ,表示在后台以守护态(daemonized)形式运行容器
-p 外部端口与内部容器端口映射。
--name 指定容器的名称。当然可以不指定,默认会为我们创建
最后一个参数 testdocker就是我们刚创建的镜像名称

 

image.png

可以用 docker ps -a 查看所有的容器。 docker ps 可以查看运行中的容器
最后在浏览器输入, http://localhost:50879/,就可以看到正在运行的项目了
image.png

 

centos篇

Linux上部署docker 和windows基本一样,首先我们把我们发布后的文件上传到linux上,我这里用的是Hyper-v的虚拟机里装的CentOS8,上传用的cmder工具下的命令上传。
具体内容我会放到另一篇文章中详细讲解,上传文件到hyper-v中的centos
查看IP地址(linux命令),以下两个命令都可以

ifconfig
ip addr

上传文件到centos

scp publish.zip root@172.17.44.203:/home/myname/Public

登录centos可以看到文件已经过来了

 
image.png
 

之后的命令基本和windows下一样了。
首先要拉取dotnetcore2.2的运行时

docker pull microsoft/dotnet:2.2-aspnetcore-runtime

创建镜像

docker build -t testdocker .
image.png
 

然后启动容器

docker run -d -p 50879:80 testdocker
image.png
 

可以看到我们的项目已经启动了。

 
image.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值