CentOS

  使用VS2017新建一个asp.net core项目

发布web应用程序

使用FTP工具,将程序文件copy到linux上

XShell连上linux并登陆

cd /CoreWebDemo #进入应用程序目录

vi Dockerfile #编辑Docker配置文件,文件不存在会自动创建

#基于microsoft/aspnetcore或者microsoft/dotnet:runtime来构建我们的镜像
FROM microsoft/dotnet:runtime#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中
COPY . /publish#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR /publish#设置Docker容器对外暴露80端口
EXPOSE 80#使用CoreWebDemo.dll来运行应用程序ENTRYPOINT ["dotnet", "CoreWebDemo.dll"]

View Code

可以选择runtime或者完整sdk来创建镜像,完整的sdk创建的镜像有1.75G左右,而runtime创建的镜像只有300M左右,建议使用runtime来创建镜像。

编辑完毕后,保存退出

vi /etc/docker/daemon.json #编辑配置文件使用加速服务,如果不存在自动新增

{"registry-mirrors": ["https://registry.docker-cn.com"]
}

View Code

编辑完成,保存退出

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker #重启docker

docker build -t 镜像名称 .  #建立一个镜像(注意最后一个空格+点),该过程可能会非常缓慢,建议使用加速器或者VPN

docker run --name 容器名称 -d -p 80:80 -e "ASPNETCORE_URLS=http://+:80" 镜像名称

-d 后台进程。

-p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)

ASPNETCORE_URLS=http://+:80 应用程序启动时绑定80端口

如果防火墙没有开启80端口,就重新开启

firewall-cmd --zone=public --add-port=80/tcp --permanent 
systemctl stop firewalld.service             #停止firewall
systemctl disable firewalld.service        #禁止firewall开机启动

--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

docker添加加速服务教程: https://yeasy.gitbooks.io/docker_practice/content/install/centos.html

PS:如果使用runtime来创建镜像,可能会出现错误

error:
An assembly specified in the application dependencies manifest (CoreWebDemo.deps.json) was not found:
package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1'
path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.0-linux-x64.xml;aspnetcore-store-2.0.0-osx-x64.xml;aspnetcore-store-2.0.0-win7-x64.xml;aspnetcore-store-2.0.0-win7-x86.xml

编辑web项目的csproj文件

增加如一行到 csjproj文件中即可:<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> 
最后csjproj文件看上去像这个样子:

  <PropertyGroup><TargetFramework>netcoreapp2.0</TargetFramework><PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest></PropertyGroup>

重新发布,上传到linux。执行docker run语句,就会创建成功。

docker常用命令

删除镜像

docker rmi c861a419888a(镜像ID)

删除容器

docker rm xxxxxxxxx(容器id)

创建容器

docker commit -p xxxxxxxxxxx(容器id) name(快照名称)

保存本地tar备份

docker save -o /xxxxxxxx.tar name(镜像名称)

还原本地tar备份

docker load -i /xxxxx.tar

查看所有容器

docker ps -a

停止一个容器

docker stop 容器名称

转载于:https://www.cnblogs.com/twinhead/p/8321467.html

使用docker部署.net core应用相关推荐

  1. Linux上用Docker部署Net Core项目

    前提:本地配置好Docker环境 1.构建Net Core镜像 docker pull microsoft/dotnet 2.新建一个DockerFile文件并填充内容 #基于 `microsoft/ ...

  2. ASP.NET Core微服务(七)——【docker部署linux上线】(RDS+API接口测试部分)

    ASP.NET Core微服务(七)--[docker部署linux上线]: 本文测试采用阿里云的RDS(sqlserver服务器)+ECS(linux服務器)进行测试,由于是测试,[按量付费]买个最 ...

  3. 从零实操基于WSL2 Docker部署Asp.Net Core项目

    前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...

  4. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  5. 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署

    最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docke ...

  6. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  7. ASP.NET Core开发Docker部署

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  8. .net core 使用 FreeSpire.XLS 实现 excel 转 png - docker 部署

    背景 前后端分离项目, 后端需返回大量数据, 由于样式复杂,导致前端操作卡顿.通过返回图片解决. 踩坑日记 FreeSpire.XLS && Aspose.Cells包都可以实现.实现 ...

  9. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  10. Docker的使用初探(二):Docker与.NET Core的结合

    目录 Docker的使用初探(二):Docker与.NET Core的结合 添加Dockefile 1. 在创建项目时添加 2. 手动添加 3. 容器业务流程协调控制程序支持 Dockefile语法 ...

最新文章

  1. 杀毒软件原理后续阶段
  2. 5.6 Column Attribute
  3. 新Astaroth***病毒可利用杀毒软件窃取数据
  4. web项目怎么连接云服务器,web项目怎么连接云服务器
  5. 集群、负载均衡、分布式
  6. iOS Xcode4.2代码管理工具的使用
  7. Windows获取CPU、内存和磁盘使用率脚本
  8. 电脑表格日期怎么修改原有日期_为何电脑系统时间常出错或无法修改?怎么解决?...
  9. 云班课计算机第二阶段测试卷,云班课测试题答案
  10. JDK8新特性LocalDate、LocalTime和LocalDateTime
  11. PROC文件及文件夹创建
  12. vmware 7.0 序列号_更改solidworks序列号及修改安装
  13. 新计算机是飞行模式怎么开,win10系统电脑开机只有飞行模式怎么办
  14. c语言srand函数作用,C语言之rand()和srand()函数
  15. C++语言for循环实现从1加到100:1+2+3+...+100=
  16. 编码:隐藏在计算机软硬件背后的语言(一)编码
  17. LeNet-5网络结构详解
  18. Java 之 socket 网络编程
  19. 2022全新Java学习路线图动力节点(七)架构师必备技术
  20. 联合国 ITU 立项成功,DevOps 标准开启国际化模式!

热门文章

  1. 三十、K8s供应链安全1-准入控制器
  2. 一张图看懂OSPF邻接关系建立及报文类型
  3. Linux命令使用练习一
  4. Bugku杂项小猪佩奇思路
  5. vue-cli 脚手架开发环境搭建
  6. Docker以及Registry介绍
  7. java J2EE 分层设计思想及各个文件命名规范
  8. 可以这样去理解group by和聚合函数
  9. php mysql商品数量购买减少_PHP+Redis+MySQL商品秒杀与超卖讲解
  10. Mac OS X 安装protobuf