⒈新建一个ASP.NET Core2.2 Web程序

因为Windows的Docker和Linux的Docker有所不同,本次测试采用的是Linux的Docker,因此没有勾选启用Docker支持。

尝试运行下项目

⒉创建Dockerfile文件

在项目的根目录下,添加一个Dockerfile文件,注意文件名。

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

这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime

如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtime-alpine ,这镜像使用了alpine 一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。

修改Dockerfile属性

⒊发布应用程序

⒋创建Docker镜像

 docker build -t dockerdemo:1.0.0 . 

⒌运行Docker镜像

 docker run --name=dockerdemo -d -p 8000:80 -v /home/fanqi/aspnetcore:/app dockerdemo:1.0.0 

*我们可以编写 发布+构建 的脚本。

Windows:

文件名:build.bat

 @echo off

 echo "Windows Docker build"

 cd ../DockerDemo

 dotnet publish -c Release -o ../publish

 cd ../publish

 echo "publish success"

 docker build -t dockerdemo:1.0.0 .

Linux:

文件名:build.sh

 #!/bin/bash

 echo Linux Docker build

 cd ../DockerDemo

 dotnet publish -c Release -o ../publish

 cd ../publish

 echo publish success

 docker build -t dockerdemo:1.0.0 .

若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,

请通过vim/vi编辑sh脚本,按:键,输入 set ff=unix,然后回车、wq保存即可

最新文章

  1. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1
  2. Jenkins持续集成 & .NET
  3. python的ujson与simplejson
  4. XtraScheduler 日程控件显示自定义标题
  5. linux 集群配置ssh无密码访问
  6. Linux 的多线程编程的高效开发经验(转)
  7. Rust入门篇 (1)
  8. 【Android开发经验】使用Ant批量打包Android应用全然指南
  9. Qgis插件开发之Qgis源码学习
  10. Configuration配置信息管理
  11. network programming-简单的TCP客户服务器编程
  12. TCP/IP入门(1) --链路层
  13. oo第二次博客作业
  14. jQuery学习之旅 Item9 动画效果
  15. socket.error: [Errno 99] Cannot assign requested address
  16. Tensorflow的Queue读取数据机制
  17. python全栈开发 * 26知识点汇总 * 180709
  18. [ERROR] InnoDB: Trying to access page number 7 in space 957, space name XXX which is outside the tablespace bounds
  19. SideBar 选择城市时右侧边上的 选择bar
  20. hdu 4548 初始化+二分 *

热门文章

  1. jeecg中自定义dialog,实现窗体的弹出
  2. Android学习_广播接收器
  3. 7.1 Spring原理
  4. Python做域用户验证登录
  5. 如何评价深度学习框架Keras?
  6. OpenCV学习笔记(15)——更多的轮廓函数
  7. 885. Spiral Matrix III
  8. pandas基础,Serires,Dataframe
  9. 阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
  10. Python3命名规范