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的更多相关文章

  1. 发布ASP.NET Core程序到Linux生产环境

    原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...

  2. centOS docker运行Asp.net Core程序

    [root@localhost chenhua]# docker run -it --rm -p : --name aspnetcore_sample microsoft/dotnet-samples ...

  3. Docker打包 Asp.Net Core应用,在CentOS上运行

    本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到 ...

  4. Docker打包 Asp.Net Core应用,在CentOS上运行(转)

    转载连接:https://www.cnblogs.com/ibeisha/archive/2017/09/09/netcoreondocker.html 本文主要介绍下运用docker虚拟技术打包As ...

  5. ASP.NET Core MVC 在linux上的创建及发布

    前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...

  6. docker 初识之二(简单发布ASP.NET Core 网站)

    在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...

  7. Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署

    运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...

  8. docker 安装jenkins 发布 asp.net core 2.0

    安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...

  9. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

随机推荐

  1. 阿里druid连接池监控数据自定义存储

    如何将druid连接池监控到的sql执行效率,连接池资源情况等进行持久化存储,方便系统运维分析优化,以下案例初步测试成功. 第一部: 新建MyDruidStatLogger类实现接口 extends ...

  2. docker 打印带时间的日志

    1, 根据容器日志查看连接情况  docker logs 684  (因为从6.30日开是打印,太慢了.) 2,docker带参数的打印出日志 docker logs 684 --since=&quo ...

  3. MacBook Pro设置外接显示器竖屏显示 切换主显示器

    切换主显示器设置 有一些使用 Mac 电脑的用户,比如笔记本用户,可能会由于屏幕太小想外接一个更大的显示器,也或是有多显示输出的需求.当 Mac 电脑上有了多个显示器以后,此时便会有主副显示区之分了. ...

  4. 免费好用的SSH手机客户端

    简单说一些,SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专 ...

  5. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  6. ISO/IEC 9899:2011 条款6.9——外部定义

    6.9 外部定义 语法 1.translation-unit: external-declaration translation-unit    external-declaration extern ...

  7. 转 zabbix 优化方法 以及 后台数据库查询方法 两则

    ############sample 1 https://blog.51cto.com/sfzhang88/1558254 如何从Zabbix数据库中获取监控数据 sfzhang关注6人评论40627 ...

  8. Python - Django - ORM 自定义表名

    通过 Django 建立的表 命名方式为:项目名_表名 可以将该默认命名方式进行修改 models.py: from django.db import models class Person(mode ...

  9. Mathjax与LaTex公式简介

    MathJax与LaTex公式简介 (转载) PS: 原文链接写的非常好!!! 博主写这篇文章,一是为了防止原链接失效,二是在cnblogs上测试MathJax; 本文从math.stackexcha ...

  10. DevOps - 持续集成(Continuous Integration)

    1 - 持续集成简介 持续集成(Continuous integration,简称CI)是软件的开发和发布标准流程中最重要的部分. 作为一种开发实践,在CI中可以通过自动化等手段高频率地去获取产品反馈 ...