使用docker搭建STUNTURN服务器

使用docker搭建STUNTURN服务器,第1张

前言

    STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through NATs,即简单的用UDP穿透NAT。

    TURN,首先在RFC5766中定义,英文全称是Traversal Using Relays around NAT:Relay Extensions to Session Traversal Utilities for NAT,即使用中继穿透NAT:STUN的扩展  

    简单的说,TURN与STURN的共同点都是通过修改应用层中的私网地址达到NAT穿透的效果,异同点是TURN是通过两方通讯的“中间人”方式实现穿透。

    ICE的全称Interactive Connectivity Establishment(互动式连接建立),由IETF的MMUSIC工作组开发出来的,它所提供的是一种框架,使各种NAT穿透技术可以实现统一。

    STUN和TURN服务器和ICE可以参考阅读: P2P技术详解(三):P2P技术之STUN、TURN、ICE详解

    本文介绍如何通过DOCKER搭建STUN和TURN服务器,步骤如下

1:创建Dockerfile,内容如下:

FROM      ubuntu:1404

MAINTAINER Patxi Gortázar <patxigortazar@gmailcom>

RUN apt-get update && apt-get install -y \

  curl \

  libevent-core-20-5 \

  libevent-extra-20-5 \

  libevent-openssl-20-5 \

  libevent-pthreads-20-5 \

  libhiredis010 \

  libmysqlclient18 \

  libpq5 \

  telnet \

  wget

RUN wget >默认的情况下,docker启动的容器经过日积月累,会产生很多的大文件,大到足以撑满服务器的磁盘空间。这个时候该怎么办呢?答案当然是扩容了。

这里给一个常规的解决思路,给云服务器增加一块大磁盘,然后将docker的文件全部移到新挂载的磁盘里,再为docker创建一个软链接即可。

示例中的磁盘并不是另外加的一块,而且之前就存在的磁盘,但是有一大部分空间未分配。但实际上这跟新加的磁盘处理方案是一样的,下面就以此为例做个简单介绍。

查看磁盘情况

可以看到xvda磁盘有200G的空间,但是只挂载了50G左右的,剩下的都在空闲状态,现在需要将剩下的150G左右的空间给利用上

执行以下命令,建立分区

按提示输入 m 可查看命令帮助
输入 p 查看当前磁柱请情况
输入 n 新建分区,并按提示选择分区类型,及起始和结束扇区
然后输入 w 保存
最后再用 reboot 重启服务器

重启服务器之后,为刚刚建立的分区格式化

可以用以下命令查看下挂载后的结果

之前这台服务器的根目录使用100%的磁盘,经过这个方法处理之后,降到45%了。

需要使用docker在后台运行一个nginx服务器需要docker容器部署方式。方法如下:
1、docker构建mysql环境+docker构建项目自身环境。
2、Vue项目:使用docker启动nginx服务器方式代理部署。
3、项目使用mysql80作为数据源,部署时需要使用docker构建mysql环境及项目自身环境。
4、连接出现1251错误时:将项目进行打包:“mumu-001-SNAPSHOTjar到此,springboot项目采用docker”方式运行部署结束。
5、使用docker容器方式运行nginx服务器即可。

截止到22年04月01日为止

portainer 官网提供版本 293
>

网上方法千奇百怪,长篇大论看得心累,所以我希望三步之内解决这件事,那么开始吧。

你需要安装160以上的版本的 Docker 。

如果要使用域名绑定私有仓库,必须开启SSL。

生成下面文字即为成功:

克隆仓库。

编辑配置。

模板如下:

移动你的证书到 cert/ 目录。

备份一下原文件,使用>原文传送门

随手浏览时,翻到一篇文章《 服务器指北 - 有了服务器之后可以做点什么 》,我平时就喜欢在家里搞东搞西,这标题正对胃口。毫不犹豫的点进去看看有什么新东西能用在家里的山寨服务器上。果然没让我失望,里面提到一个影音管理系统叫做jellyfin,从之前的 emby fork 而来,由于 emby 闭源了,大家就在这基础上分支出了 Jellyfin。

特性嘛?

话不多说,让我们直奔主题吧。

我的家庭nas服务器系统的版本是ubuntu1604,是用一个acer旧笔记本改的,原来的硬盘容量已经很小了,只能用来跑系统,存储全部使用外挂方式,用来存储自己的本地资料以及搭建云盘和云笔记的数据资料,影音文件也在其中。
我选择搭建docker版jellyfin,影音库直接挂到外存中的影音文件夹,不需要对原有资料路径做任何变动。

当看到这段文字时,说明docker安装成功了。

至此,Docker安装最简版,完成。没有像其他文章提到的配置镜像站,也没有分配用户权限。没分配用户权限不是好的示范,不提倡学习,但是我这边自家内网使用,一切从简。
下面开始使用docker来搭建本文的主角——Jellyfin服务。

然而我并不是这样做的。因为懒,直接docker安装了。

上面的参数中需要说明的是:

docker会自动拉取镜像完成安装

如果能看到上面的画面,说明jellyfin安装完成,就是这么便捷!!!!docker越来越成功果然是有道理的。
现在就可以通过>

我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败,

Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同小异,都是一些如何清理历史镜像文件的文章,而实际按照清理镜像文件进行一顿 *** 作,释放的内存了了,最近一次磁盘空间报警事件,镜像文件清理也就才清理了40M,完全达不到清理磁盘空间的效果。
事实上我们的镜像执行sh脚本本身包含清理垃圾镜像文件的步骤:

因此,重要事情说三遍: 当Docker镜像服务器磁盘空间不足时,首先要考虑的时服务器的日志文件、大文件等等,最后才考虑Docker镜像本身占用的磁盘内存

df命令用于查看磁盘分区的使用情况,了解磁盘总量及用量,默认单位为KB。
当磁盘空间报警时,我们可以使用df命令查看磁盘分区使用情况:

注意,使用df -h命令会看到Docker镜像的/var/lib/docker 目录占很多空间,其实这是假象,许多同事初次看到这个接口首先应该就是去考虑如何清理/var/lib/docker,我也不例外。
不要受/var/lib/docker 目录影响,继续分析空间占用情况。

前面通过df命名我们大致了解了我们磁盘分区内存使用情况,使用du命令可以当前目录下文件、目录在磁盘中占用的空间的大小。
来到服务器顶层目录,执行命令:

找到内存使用异常的文件夹,进入其目录依次执行du -sh ,最终找到占用内存的大文件或日志,进行清理。
分享下我在情况过程找到的大文件

通过前面df 和du配合分析清理空间后,基本就能释放服务器磁盘空间,就简单提下Docker镜像清理咯,毕竟网上一大堆。
镜像清理。

批量清除无用的镜像


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13456096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-10
下一篇 2023-08-10

发表评论

登录后才能评论

评论列表(0条)

保存