博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker踩坑小记
阅读量:4621 次
发布时间:2019-06-09

本文共 1664 字,大约阅读时间需要 5 分钟。

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

710776-20190806101911978-188122815.png

安装

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

    710776-20190806102945067-138144352.png

  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

===>

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上。

无法访问

710776-20190806104259757-2097066523.png

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

710776-20190806104349296-370362521.png

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

710776-20190806112620703-1570359129.png

然后在XShell客户端 curl -i

710776-20190806104754446-1269159156.png

最后

正常访问

710776-20190806104841003-120029010.png

转载于:https://www.cnblogs.com/zhan520g/p/11307508.html

你可能感兴趣的文章
说说DBA职责和目标
查看>>
从头认识Spring-2.4 基于java的标准注解装配-@Inject-限定器@Named
查看>>
sql server 实现多表连接查询
查看>>
Python标准库:内置函数getattr(object, name[, default])
查看>>
转:android 自定义RadioButton样式
查看>>
HTTP请求过程
查看>>
织梦多域名解析到同一个空间导致打开链接不一致怎么办?
查看>>
Xcode10 library not found for -lstdc++ 找不到问题
查看>>
Mysql 8.0.13如何重置密码
查看>>
发布功能完成
查看>>
excel 合并单元格
查看>>
iOS设计模式简介
查看>>
c# 扩展方法 奇思妙用 高级篇 九:OrderBy(string propertyName, bool desc)
查看>>
C语言中的地址传递(传指针,传递给形参的指针仍然是实参指针的一份拷贝)
查看>>
redis缓存数据库及Python操作redis
查看>>
opencms忘记Admin用户登录密码解决方案
查看>>
forms组件
查看>>
create-react-app 配置sass
查看>>
02_关系数据库
查看>>
在win7电脑中如何查看运行进程的PID标识符
查看>>