使用CentOS 7 + Docker在本地虚拟机中部署属于自己的一起听歌站

由 Cizuki 发布

现在,包括网易云音乐、QQ音乐在内的许多国内互联网音乐平台都推出了“一起听歌”的功能,但是在使用时可能会发现有许多的曲子只有在某一个特定的平台才能听到,在另一个平台就无法使用这些资源,那么我们就可以通过搭建这种聚合类的一起听歌站点来实现曲库资源共享的目的。


0.操作前准备

需要准备以下内容
A.VMware Workstation 15.5 Pro(也可使用其他虚拟机软件)
B.CentOS 7系统镜像

CentOS镜像通过阿里巴巴开源镜像站来下载速度较快 在这里贴出来我所使用的镜像链接
下载地址


1.虚拟机及操作系统安装

如果是在本地虚拟机中进行搭建,请按照以下步骤进行操作。
如果需要在公网服务器进行搭建,请忽略本节。
本节将使用VMware workstation 15.5 Pro进行操作

1.1 虚拟机软件安装 略

1.2 操作系统安装

1.2.1 创建及启动虚拟机

为了简化操作步骤,在这里我们选用“典型”,此时点击下一步。

加载系统镜像,选择完成后点击下一步。

此时填写虚拟机名称和选择虚拟机路径,完成后点击下一步。

填写硬盘空间大小,建议20G以上,此处因为只需要搭建一起听歌站,所以20G足够使用。填写完成后点击下一步。

在虚拟机开机之前,我们进入到虚拟机的设置页面,在“网络适配器”界面选择“桥接模式”,如果仅需在本机访问,也可选择NAT模式,完成后点击下方“确定”来保存网络配置。

TIPS:在设置网络设备的同时,我们也可以删掉下方的打印机,如果没有USB和声音使用需求,也可以删除USB控制器和声卡,方法略。

一切准备就绪之后,让我们开机!

1.2.2 安装操作系统

在开机后需要等待安装前准备,中间需要键入Enter键。
安装前准备

安装准备就绪之后,我们会看到语言选择界面。可以根据自己需要选择,这里我们搜索“Chinese - 简体中文”,选择完成之后点击“继续”。
语言选择

选择简体中文

进入安装信息摘要页,如图。
安装信息摘要页面

点击系统 - 安装位置页,选择我们刚刚分配的硬盘,如图。选择完成后点击左上方“完成”。
43-1

这里很容易忽略的一点是,虽然“网络和主机名”这一栏没有标注警告标记,但是我们可以看到它目前是未连接状态。为了让其它设备可以访问到,我们需要点击“网络和主机名”,打开连接开关。点击右上方开关按钮,待其显示网络配置信息后,点击左上方“完成”。
默认为未打开状态

打开后

一切准备就绪后,我们点击右下方“开始安装”来安装操作系统。
开始安装操作系统

在这个过程中,我们需要设置自己的ROOT账户密码(必选)与创建用户(可选)。在这里我们两个都设置,但是在实际操作中只需要用到ROOT账户。设置完成后,如图所示。
设置完成

在这之后,我们只需要等待其安装完成即可。这个过程可能需要10分钟以上的时间,此时可以稍微休息一下。

系统安装完成之后,我们点击右下方“重启”进入操作系统。
安装完成

进入操作系统之后,输入账户名和密码登录。
Username: root
Password: (输入自行设置的密码)

登录完成后如图所示。

2.安装Docker

这里我们可以采用菜鸟教程给出的方法进行安装,简单快捷。
方法一:输入以下命令(阿里云镜像),输入完成后回车等待即可

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

方法二:输入以下命令(daocloud),输入完成后回车等待即可。(可用性请自行验证)

curl -sSL https://get.daocloud.io/docker | sh

安装过程如图所示,还请耐心等待安装完成。
安装过程

安装完成后如图所示
43-2

我们输入以下命令

docker --version

如果显示版本信息即为安装成功,如图。
版本信息

安装完成之后,我们需要启动Docker,在这之后还需要设置Docker开机自启动。
启动Docker命令如下

systemctl start docker

设置Docker开机自启动命令如下

systemctl enable docker

到这一步Docker安装完成。


3.在系统防火墙中放行端口

此项目需要用到以下几个端口

  • 网易云音乐:3000
  • QQ音乐:3300
  • 咪咕音乐:3400
  • 酷我/虾米音乐:8081
  • 前端:8888

最简单的做法是关闭防火墙

systemctl stop firewalld.service.

在这之后需要关闭防火墙自动启动

systemctl disable firewalld.service.

需要注意的是,关闭防火墙会使服务器处于较大安全风险之中,因此在生产环境中应谨慎使用。

安全的方法是在防火墙中放行以上列出的几个端口。

依次执行以下命令进行放行

firewall-cmd --zone=public --add-port=3000/tcp --permanent

firewall-cmd --zone=public --add-port=3300/tcp --permanent

firewall-cmd --zone=public --add-port=3400/tcp --permanent

firewall-cmd --zone=public --add-port=8081/tcp --permanent

firewall-cmd --zone=public --add-port=8888/tcp --permanent

每一次执行完成之后,如果给出“success”,即为放行完成。放行完成后如图所示。
端口放行完成


4.通过Docker进行部署

为简化安装步骤,节省时间,我们可以使用Jonnyan404制作的Docker进行部署。
我们通过执行以下命令进行部署

docker run -d --name music -p 8888:8888 jonnyan404/jusic

等待部署完成,可能需要较长时间,请耐心等待。在部署过程中可以闭上眼休息一下(点头)。
部署中

部署完成后如图所示
部署完成

这时我们可以执行以下命令查看docker容器状态,执行完成后如图所示。

docker ps -a

状态


4.局域网内访问(本地虚拟机部署)

如果为公网服务器部署,可以直接输入http://公网IP地址:8888访问(可在公网访问)
如果为本地虚拟机部署,且已经在这之前向运营商申请公网IP地址,也可以像上面一样在公网进行访问,但是需要在路由器/光猫中关闭AP隔离功能。
如果为本地虚拟机部署,且没有向运营商申请公网IP地址,或者只需要在本地局域网访问,我们需要获取本地虚拟机的内网IP地址,且关闭路由器/光猫的AP隔离功能。

我们需要在虚拟机执行以下命令查看内网IP地址,执行完成后如图所示。图中红框标注出来的地址即为我们本地虚拟机的内网IP地址。

ip addr

内网IP地址

我们需要关闭路由器的AP隔离功能来确保客户机能够访问到服务器,如图所示。
43-4-5

设置完成之后我们试一下内网访问,如图所示。
A-SOUL!!A-SOUL!!


5.TP-LINK路由器通过TPDDNS实现公网访问

TPDDNS是我司提供的动态域名解析服务,可以将变化的IP地址与固定的域名对应起来。由于路由器WAN口IP是动态变化的(如宽带拨号下),如果登录TPDDNS映射,那么只需要使用该域名即可访问到路由器中所映射的服务器,无需理会动态变化的IP地址。——TP-LINK客户服务

通过TP-LINK提供的TPDDNS功能我们可以无需向申请公网IP地址而让自己的一起听歌站可以被公网访问到,接下来介绍TPDDNS的设置方法。
环境:

  • 路由器型号:TL-WR842N
  • 固件版本:3.4.4

5.1 登录路由器管理后台(图略)

5.2 选择应用管理 - DDNS - 服务提供者选择TP-LINK
如果没有使用过TPDDNS服务,可以在页面上设置一个。由于我已经使用过,所以略过初始设置过程。设置完成后如图所示。
DDNS设置完成

在访问之前还需要路由器打开DMZ主机功能,且选择DMZ主机地址为本地虚拟机内网IP地址。设置完成后如图所示,点击右下角保存。
DMZ主机设置

这时我们就可以用DDNS域名:端口在公网进行访问,这时在内网就不能用DDNS域名:端口的形式进行访问。
但是如果使用TPDDNS的话,有概率会无法访问。这个时候就可以用提供的另一个DDNS服务商花生壳,方法在此不再阐述,感兴趣的话可以自行探索,如果我能写出教程的话我会在这一段后面继续来写。如果小伙伴们在我之前写出了教程,可以把教程写在下方评论区。


写在最后

这一篇文章到这里就结束啦,希望能够对你有所帮助。
写这篇文章的目的是为了实现曲库的聚合,从而解决版权限制的问题。
附:项目GitHub地址:Jusic-Serve-Houses
会员账号设置:https://github.com/JumpAlang/Jusic-Serve-Houses/issues/4#issuecomment-766493294

感谢你能看到这里 祝屏幕前的小伙伴们新年快乐呀


暂无评论

发表评论