使用Docker发布Asp.Net Core程序到Linux
CentOS安装Docker
按照docker官方文档来,如果有之前安装过旧版,先卸载旧版,没有的话,可跳过。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
首先安装docker依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加docker源到yum包管理器
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可选项设置都跳过,直接安装
sudo yum install docker-ce docker-ce-cli containerd.io
启动docker,并设置为开机启动
sudo systemctl start docker
sudo systemctl enable docker
之前写了一个demo,在aspnetcore2.2中使用swagger,但是当时并没有启动docker支持,而且很早之前就上传到这台服务器了,其实就是本地虚拟机ヽ(ー_ー)ノ。但是没关系,可以直接在服务器里面来写这个Dockerfile,因为懒得再用VS添加docker支持,其实道理都是一样的,重要的是这个Dockerfile。
添加Dockerfile
在服务器进入到程序发布的路径,比如我是放在/home/wwwroot/swagger_demo/,进来之后用命令创建一个Dockerfile文件:sudo vi Dockerfile,内容如下:
FROM microsoft/dotnet:2.2-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 24438
ENTRYPOINT ["dotnet", "swaggerDemo.dll"]
我这里是开放了24438端口,这个swaggerDemo应用在创建的时候就是这个端口,所以就用了这个端口。一般一台服务器如果只部署一个应用的话,默认开放80端口就好了。我也不知为什么,我就是喜欢用别的端口 ,╮(╯▽╰)╭
创建镜像
在有Dockerfile的这个目录下执行命令,注意命令最后是一个点。
sudo docker build -t swaggerdemo .
创建镜像过程中提示了一个warning,大家都懂的,程序员从来不接受威胁,况且终端提示Successfully build,所以继续下一步。┓( ´∀` )┏

启动容器
sudo docker run --name=swaggerdemo -p 24438:24438 -d swaggerdemo

仍然有这个警告,但是容器是启动成功了,可以通过sudo docker ps查看运行中的容器。在服务器打开Firefox(没错,虚拟机中安装了图形化界面),访问24438端口,程序正常。

解决IPv4 forwarding
虽然docker容器启动成功了,但是只能在服务器访问,外网访问不了。看来这个warning简直就是error啊,要解决这个警告,在/etc/目录下找到这个文件sysctl.conf,结果打开一看,
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
然而/sysctl.d/目录里面全是快捷方式,最后在/usr/lib/sysctl.d/目录找到了这个文件00-system.conf,在里面加上这一句:
net.ipv4.ip_forward = 1
然后重启网络和docker
systemctl restart network && systemctl restart docker
重新启动容器之后,在本地就可以通过服务器ip和端口访问了。

使用Docker发布Asp.Net Core程序到Linux的更多相关文章
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- centOS docker运行Asp.net Core程序
[root@localhost chenhua]# docker run -it --rm -p : --name aspnetcore_sample microsoft/dotnet-samples ...
- Docker打包 Asp.Net Core应用,在CentOS上运行
本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到 ...
- Docker打包 Asp.Net Core应用,在CentOS上运行(转)
转载连接:https://www.cnblogs.com/ibeisha/archive/2017/09/09/netcoreondocker.html 本文主要介绍下运用docker虚拟技术打包As ...
- ASP.NET Core MVC 在linux上的创建及发布
前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...
- docker 初识之二(简单发布ASP.NET Core 网站)
在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...
- docker 安装jenkins 发布 asp.net core 2.0
安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...
- 从头认识一下docker-附带asp.net core程序的docker化部署
从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...
随机推荐
- ImageSwitcher 图片切换器
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Flutter Wrap 组件实现流布局
Wrap 可以实现流布局,单行的 Wrap 跟 Row 表现几乎一致,单列的 Wrap 则跟 Row 表 现几乎一致.但 Row 与 Column 都是单行单列的,Wrap 则突破了这个限制,main ...
- percona-mysql5.7.24使用xtrabackup工具配置主从同步
主从配置详细过程: 环境准备: 配置好服务器,主从服务器都安装并启动mysql数据库 # 添加读写账号和只读账号,应用配置中,写主库用读写账号,统计从库数据yoga只读账号 grant select, ...
- Spring cloud微服务安全实战-5-8实现基于session的SSO(认证服务器的session有效期)
认证服务器 session的有效期. 也就是认证服务器上的session的有效期 生成环境下,认证服务器一定是一个集群.集群.那么session一定是要在所有的服务器之间进行共享的.最简单的方式是用S ...
- C++数据存储方式
1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区,里面的变量通常是局部变量.函数参数等. 2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去 ...
- k8s记录-下载k8s相关二进制包(一)
1)软件清单操作系统:CentOS7Kubernetes版本:v1.14.2flannel:v0.10.0ectd3:v3.3.11Docker版本:v18.09.0-ceDocker-compose ...
- PAT 甲级 1066 Root of AVL Tree (25 分)(快速掌握平衡二叉树的旋转,内含代码和注解)***
1066 Root of AVL Tree (25 分) An AVL tree is a self-balancing binary search tree. In an AVL tree, t ...
- ABAP DEMO ALVtree显示BOM层级
展示效果: *&---------------------------------------------------------------------* *& Report YCX ...
- Spring Cloud 如何使用Eureka注册服务 4.2.2
要使用Eureka实现服务发现,需要项目中包含Eureka的服务端发现组件以及客户端发现组件. 搭建Maven父工程 创建一个Maven父工程xcservice-springcloud,并在工程的po ...
- LODOP计算结果值的合计
LODOP中可以通过表达式等方式,计算结果并显示在LODOP预览打印的表格里,计算的是table中本来存在的数据,可以用tindex指定合计哪一列(相关博文:)那一列的数值是table中实际存在的,如 ...