Docker是一个开放平台用于快速开发、分发和部署应用程序。
  Docker是一种容器管理技术。
  解决头疼问题原则:回归最简单的方式来。确保最初级的方案没有错误。

安装

docker安装很简单,输入官方的命令就可以,但是在安装docker-comopse的过程中遇到下载超级慢的问题,所以需要配置加速器,这里使用了国内的daoclould

 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

同时记得的授权:

chmod +x /usr/local/bin/docker-compose

然后下载发现较之前快了很多很多。。。。

Dockerfile

FROM microsoft/dotnet:latest
WORKDIR /app
EXPOSE 8081
WORKDIR /app
COPY . /app
ENTRYPOINT ["dotnet", "momo.dll"]
  1. 微软提供的模板中 只是引入了 运行时,但是我在run的时候,docker日志一直提示需要安装sdk,这个让我有点搞不懂。然后查看很多人都是安装了sdk????只好暂时先安装sdk,把项目运行起来,后续恢复到runtime来。 下载完sdk,发现镜像有了1.7GB,要不得要不得

  2. COPY出问题,微软在上面COPY命令行指定的是

COPY --from=publish /app .

  因为我们没有publish,所以修改成: COPY . /app

appsettings.json

如果我们连接了镜像的mysql, 记得将连接字符串修改为镜像名

  "ConnectionStrings": {
"MySQLConnection": "server=docker.mysql;database=momo;user=root;password=123456;port=3306;persistsecurityinfo=True;"
},

nlog.config

如果是发布到linux系统中,记得修改日志存储位置,因为网上大多数提供的是window版的。修改如下

  internalLogFile="Logs\internal-nlog.txt">

此外,将windows-identity去掉,改为no

<property name="UserName" layout="windows-identity" />  ===> <property name="UserName" layout="no" />

nginx.conf

自己用记事本创建的nginx.conf会导致unknown directive错误,原因是文件格式不对,自己copy一个正常的再修改内容即可。

  1. 可能是conf文件被记事本编辑过,保存成了含[BOM] 。所以才报错的。这种粘出来保存成utf-8就好了

  2. nginx文件结构配置出错,比如:正确的配置格式是:http{server{}} 如果你配成:http{} server{},就会报错

异常访问Connection reset by peer

这个是很头痛的,因为网上陈述的较少

有时我们用Docker启动了一个http服务,从外部使用curl访问却返回Connection reset by peer错误。这种错误一般是因为服务容器内部并没有监听指定的端口,而docker run时却指定了该端口。进一步的,这种错误往往由于容器内部的服务监听在localhost:port上,只允许本机访问,这样的话容器的端口映射将失败。应该检查容器内部服务监听在0.0.0.0上。

无法访问

基础宿主机和docker容器端口映射成功,也无法访问

解决方法:在Program.cs 中添加.UseUrls("http://*:8081") 内部服务监听在任何IP上。同时dockerfile中暴露的端口也修改为8081.

然后在XShell客户端 curl -i http://localhost:8081

最后

正常访问

Docker踩坑小记的更多相关文章

  1. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  2. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  3. ASP.NET Web 应用 Docker踩坑历程——续

    ASP.NET Web 应用 Docker踩坑历程发表后,也开始使用Docker了,然而发布的过程比较痛苦,经常发生下图的事情: 据说是nuget包还原时发生错误 百度了半天也找不到解决的方法,而发生 ...

  4. Linux Mint安装Docker踩坑指南

    我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Doc ...

  5. MySql 踩坑小记

    MySql 踩坑一时爽,一直踩啊一直爽...   以下记录刚踩的三个坑,emmm... 首先是远程机子上创建表错误(踩第一个坑),于是将本地机器 MySql 版本回退至和远程一致(踩第二个坑),最后在 ...

  6. dubbo 2.7应用级服务发现踩坑小记

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 背景 本文记录最近一位读者反馈的dubbo 2.7.x中应用级服务发现的问题,关于dubbo应 ...

  7. async语法升级踩坑小记

    从今年过完年回来,三月份开始,就一直在做重构相关的事情. 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构. 包含从callback+async.waterfal ...

  8. docker 踩坑笔记之 psql: could not connect to server

    最近在用docker跑rails,也遇到了一些坑,这里记录一下. 首先build项目: docker-compose build 然后就开始报错了: psql: could not connect t ...

  9. ASP.NET Web 应用 Docker踩坑历程

    听说Docker这玩意挺长时间了,新建Web应用的时候,也注意到有个启用Docker的选项. 前两天扫了一眼<[大话云原生]煮饺子与docker.kubernetes之间的关系>,觉得有点 ...

随机推荐

  1. 1250 Fibonacci数列(矩阵乘法)

    1250 Fibonacci数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 定义:f0=f1=1, fn=fn-1+fn ...

  2. LVS集群之IP TUN模式以及网站压力测试

    今天来看一下LVS的第三种模式IP TUN. TUN方式,是通过给数据包加上新的IP头部来实现,这个可以跨整个广域网. 环境: 主机名 IP 系统 角色 tiandong63 RIP:192.168. ...

  3. leetcode题目142.环形链表Ⅱ(中等)

    题目描述: 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 p ...

  4. Flutter移动电商实战 --(12)首页导航区域编写

    1.导航单元素的编写 从外部看,导航是一个GridView部件,但是每一个导航又是一个上下关系的Column.小伙伴们都知道Flutter有多层嵌套的问题,如果我们都写在一个组件里,那势必造成嵌套严重 ...

  5. react 实现数据双向绑定

    好久没有更新了 只是都写在有道笔记中 今天整理下 一些基础的 大神勿喷 一个基础的不能再基础的数据双向绑定 因为react不同于vue 没有v-model指令 所以怎么实现呢? import Reac ...

  6. 1.springboot内置tomcat的connection相关

    最近在研究tomcat的连接超时问题,环境:jdk1.8 + springboot 2.1.1.RELEASE,以下仅为个人理解,如果异议,欢迎指正. springboot的tomcat的几个配置参数 ...

  7. 图解Python 【第五篇】:面向对象-类-初级基础篇

    由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节主要讲基础和面向对象的特性 本节内容一览图: 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 ...

  8. SpringCloud(二)之Ribbon的实现负载均衡的基本应用

    一 Ribbon简介     Ribbon是Netflix发布的负载均衡器,它是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装 ...

  9. element-ui el-upload http-request自定义上传方法

    html <el-form-item class="upload-bg register-bg" prop="ad_url"> <div cl ...

  10. CentOS7 源码安装 PostgreSQL 12

    PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgr ...