MENU

分类 docker 下的文章

Logrotate日志切割

前言

最近将docker上的nginx服务完善添加日志的切割,之前一直是一个文件时间久了出现体积过大,而且不利于查看访问情况(比如每个小时情况、每天的情况等)

阅读全文

docker无视防火墙问题总结

前言

之前一直使用docker来部署项目,不过发现直接使用-p映射端口则出现问题,如nginx映射80端,一般都会写-p 80:80,这样导致直接透过系统本机的防火墙,不用开端口可以直接外网访问80端。之前一直使用阿里云、腾讯云机器,可以给ECS实例设置安全组方式限制外网端口,不过针对没有这种设置操作的服务器实例之前一直没有认真研究,现在做一下这次折腾总结记录。

解决方法

  • 使用host网络,docker默认是使用bridge桥接网络方式。
  • 使用expose方式暴露端口在本机,然后采用nginx、haproxy等代理工具做一次转发
  • 映射端口改用-p 127.0.0.1:8080:8080,后在本机nginx代理工具映射公网访问服务
  • 禁用docker的iptables规则(下面详细介绍该方法)

阅读全文

docker启动缓慢问题排查

前言

最近入手一个树莓派4b板子,初衷是装个centos系统想拿来当个人开发机使用,偶尔业余写一些C++代码,在自己黑苹果编译有些库还不一样,之前遇到过一个用epoll。4G内存然后针对其它应用则直接用docker部署,简单还方便一点。但是遇到一个问题,每次重启一次系统,docker启动都是特别的慢(5-6分钟)。

问题发现

通过systemctl status docker命令查看状态是启动中,再仔细看了一下发现有一行。

12月 22 13:54:53 localhost dockerd[609]: crypto/rand: blocked for 60 seconds waiting to read random data from the kernel

# 大概意思是:等待60秒从内核中获取随机数。

一开始自己猜测会不会是CPU性能问题导致,后面查了一下,前辈也有遇到logstash启动缓慢的问题,也同样说等待60秒从内核中获取随机数。从那篇博文中了解到一个关于的知识点。

阅读全文