文章目录

  • 1、引言
  • 2、docker环境安装
  • 3、建立测试项目
  • 4、编写Dockerfile
  • 5、编译Dockerfile
  • 6、查看镜像
  • 7、运行容器
  • 8、测试访问
  • 9、总结

1、引言

前段时间将netcore项目部署在了centos 7的docker下,通过部署的过程中本篇文章用于介绍下在部署的时候相关步骤。

2、docker环境安装

我测试时使用的docker desktop,毕竟开发时基本上都是在windows下进行开发的,本地发布镜像运行程序开发完后可以发布到自己的私有镜像仓库中去(笔者使用的阿里的免费私有仓库)。
关于docker desktop有两种容器(linux container、windows container),运行时依赖Hyper-V虚拟机,安装的时候会自动开启Hyper-v。
运行后可以看到下图标记的虚拟机。

3、建立测试项目

直接使用dotnet-cli脚手架进行创建web项目,关于dotnet-cli的知识参见官网。

dotnet new web -n myapp

安装完成

切换到myapp目录

cd myapp

4、编写Dockerfile

创建Dockerfile文件

touch Dockerfile

注意:Dockerfile文件是没有后缀的

# 1. 设置基础镜像
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build# 2. 指定(编译和发布)工作目录
WORKDIR /app# 3. 将.csporj文件复制到工作目录“/app”下,然后执行“dotnet restore”还原nuget包
COPY *.csproj ./
RUN dotnet restore# 4. 将所有文件辅助到工作目录"/app"下,然后使用"dotnet publish"命令发布到“/app/out”目录下
COPY . ./
RUN dotnet publish -c Release -o out# 5. 编译生成Docker镜像
# 5.1 指定基础镜像
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS runtime# 5.2 设置工作目录,并将发布的所有文件复制到out目录下
WORKDIR /app
COPY --from=build /app/out .# 5.3 设置环境变量(指定端口80,443)
#ENV ASPNETCORE_URLS http://0.0.0.0:80;https://0.0.0.0:443# 5.4 执行dotnet命令启动应用
ENTRYPOINT ["dotnet", "myapp.dll" ]

我这里直接采用的是SDK,关于web项目使用aspnet即可(由于本地已经有了偷个懒)。
更多镜像参考:
https://hub.docker.com/_/microsoft-dotnet-core-sdk

5、编译Dockerfile

docker build -t myapp2 .

关于Dockerfile命令不清楚的可以参见http://www.dockerinfo.net/dockerfile%e4%bb%8b%e7%bb%8d
https://yeasy.gitbooks.io/docker_practice/image/dockerfile/

这时需要等待一段时间,至于为什么大家都懂的。
国内也有很多镜像,可以选择国内的镜像。

我这里使用的是本地已经有的镜像,所以就直接成功了

6、查看镜像

docker images

就会看到多了一个myapp2镜像。

7、运行容器

  • HTTP
docker run -d -p 8081:80 --name myapp-8081 myapp2 --always=restart
  • HTTPS
docker run -d -p 8082:443 --name myapp-8082 myapp2 --always=restart

docker相关的命令可以参见上面Dockerfile连接中的相关栏目。

查看运行的容器。

docker ps

运行的两个容器。

8、测试访问

访问成功,这里的IP地址可以通过ipconfig查看虚拟机的ip。

  • HTPPS方式

  • HTTP方式

对应的IP使用ipconfig查看

9、总结

通过前端时间的尝试这里做一个回顾测试,希望能够帮到还没有将netcore部署到docker中的童鞋带来帮助,写文章还是比较费时,不知不觉已经凌晨了。

asp.net core部署在docker容器中运行相关推荐

  1. ASP.NET Core 部署到docker

    ASP.NET Core 部署到docker ASP.NET Core:ASP.NET Core程序使用Docker部署 前提:本地已有 ASP.NET Core web应用程序,并且已安装docke ...

  2. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问

    在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...

  3. 【Step By Step】将Dotnet Core部署到Docker(中)

    [Step By Step]将Dotnet Core部署到Docker(中) 原文:[Step By Step]将Dotnet Core部署到Docker(中) 在Docker中运行MySql MyS ...

  4. 构建ChatGPT 镜像,并将其部署到 Docker 容器中。

    自己构建 ChatGPT 镜像,并将其部署到 Docker 容器中. 下面是一个简单的 ChatGPT 镜像构建示例: 准备工作 在开始构建 ChatGPT 镜像之前,我们需要完成以下准备工作: 安装 ...

  5. 如何在Docker容器中运行GUI程序

    如何在Docker容器中运行GUI程序 各位,今天我们将学习如何在Docker之中运行GUI程序.我们可以轻易地在Docker容器中运行大多数GUI程序且不出错.Docker是一个开源项目,提供了一个 ...

  6. vs附加其它计算机应用到进程,如何将VS代码附加到在docker容器中运行的节点进程...

    我试图将Visual Studio代码调试程序附加到在Docker容器中运行的node.js应用程序. 我启动应用程序,如: node --debug-brk app.js 我在docker-comp ...

  7. 如何在Docker容器中运行Docker [3种方法]

    在本博客中,我将向您介绍在docker中运行docker所需的三种不同方法. Docker In Docker的用处 dockerIndocker的一个潜在用处是CI管道,在代码成功构建后,您需要在其 ...

  8. Docker 容器中运行 Docker 命令

    Docker 容器中运行 Docker 命令 在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令:通过将宿主机的 D ...

  9. 【Rust日报】 2019-05-27:toast - 支持在docker容器中运行任务的工具

    Rust中文社区翻译小组招募 #activity #RustChina 首批任务:Rust官网翻译 这里有详细说明 https://github.com/rust-lang/www.rust-lang ...

  10. 在Linux和Windows的Docker容器中运行ASP.NET Core

    译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了.那么我就来翻译一下这篇文章,让更多的中文读者看到.当然Scott遇到的坑我也遇 ...

最新文章

  1. Spark源码分析之九:内存管理模型
  2. 蓝桥杯-拿糖果(java)
  3. mysql的所有权限
  4. 页面添加锚点后如何点击不改变URL?
  5. 他,是数学天才,是多复变解析函数的创始人
  6. MySQL建立的索引看_MYSQL索引问题:索引在查询中如何使用?看了很多资料都只说索引的建立。是否建立了就不用再理会?...
  7. 从原理带你掌握Spring MVC拦截处理器知识
  8. 我参与的一个项目总结
  9. liunux中的 【ifconfig】 命令 查看系统IP。
  10. BZOJ1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
  11. 软件项目管理案例教程第四版答案
  12. 金蝶kis是怎么恢复套账的
  13. Oracle添加语句
  14. 微软背叛wintel联盟,Intel似乎正陷入四面楚歌之中
  15. 上海科技大学信息科学与技术学院夏令营
  16. 失传万年的PS合成进阶宝典(一)
  17. Java Web财务信息管理系统
  18. 【Android 10 源码】MediaRecorder 录像流程:MediaRecorder 开始录制
  19. 为什么腾讯微云上传文件会显示服务器繁忙呢,API - 微云
  20. nacosk8s部署_在K8S中部署Nacos配置中心

热门文章

  1. Ubuntu临时修改ip地址
  2. 软件设计师中级-学习笔记
  3. 图像识别技术原理和神经网络的图像识别技术
  4. 利用不共线三点求解并联机构动系在定系中的位姿的另一种解法
  5. 品优购项目——黑马程序员pink老师/完整源代码/项目讲解
  6. 玩转ansys——悬臂梁质量块的实体建模与仿真
  7. AtCoder题解——Beginner Contest 168——E - ∙ (Bullet)
  8. 计算机专业wor知识,计算机专业毕业实习日记精选
  9. linux系统安装佳能打印机驱动,fedora21怎么安装佳能打印机驱动?
  10. 人脸图像质量评价:FaceQnet