本文最后更新于38 天前,其中的信息可能已经过时,如有错误,欢迎留言。
简介
Musicn
是一个可播放及下载高品质音乐的命令行工具,支持咪咕、酷我、酷狗和网易云的服务,容器支持 amd64 和 arm64 架构。
✨ 功能特性
- 支持播放及下载高品质音乐(MP3格式)
- 多平台服务支持:咪咕、酷狗、网易云
- 跨架构容器支持:
amd64
/arm64
⚠️ 当前限制说明
- 暂不支持无损音质下载
- 仅提供普通 MP3 格式下载及播放
- 部分平台会员专属歌曲不可下载
- 其他服务因特殊原因暂停支持
本地自测环境
Hostname | DockerCentos7 |
操作系统版本 | CentOS 7 |
Docker 版本 | 26.1.4 |
Docker Compose 版本 | 2.32.0 |
操作系统版本
[root@DockerCentos7 ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
Docker 版本
[root@DockerCentos7 ~]# docker -v
Docker version 26.1.4, build 5650f9b
Docker Compose 版本
[root@DockerCentos7 ~]# docker-compose -v
Docker Compose version v2.32.0
部署Musicn
创建部署目录
[root@DockerCentos7 data]# mkdir -p /data/musicn && cd /data/musicn
部署
docker部署
docker run -d --name=musicn --restart=unless-stopped -v ${PWD}/musicn:/data -p 7478:7478 ghcr.io/wy580477/musicn-container:latest msc -q
docker-compose部署
[root@DockerCentos7 musicn]# cat docker-compose.yml
version: '3.4' # 指定使用的 Docker Compose 文件格式版本
services:
musicn:
image: ghcr.io/wy580477/musicn-container:latest # 使用指定的容器镜像
container_name: musicn # 明确指定容器名称
restart: always # 容器退出时总是自动重启(包括手动停止后Docker重启时)
entrypoint: ["/sbin/tini", "--", "msc", "-q"] # 覆盖默认入口点,使用tini作为初始化系统运行msc -q命令
ports:
- "7478:7478" #端口映射
volumes:
- ./data:/data # 将当前目录下的data目录挂载到容器的/data目录
创建musicn容器
镜像名称:ghcr.io/wy580477/musicn-container:latest
[root@DockerCentos7 musicn]# docker-compose up -d
WARN[0000] /data/musicn/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 7/7
✔ musicn Pulled 533.4s
✔ da9db072f522 Pull complete 355.2s
✔ 1a87d5cecb08 Pull complete 526.2s
✔ 7b49ec57ee43 Pull complete 526.3s
✔ 994a4e68db48 Pull complete 526.4s
✔ 0eff51cfea66 Pull complete 526.4s
✔ d1c24fd602f0 Pull complete 529.3s
[+] Running 2/2
✔ Network musicn_default Created 0.1s
✔ Container musicn Started
检查容器状态
[root@DockerCentos7 musicn]# docker-compose ps
WARN[0000] /data/musicn/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
musicn ghcr.io/wy580477/musicn-container:latest "/sbin/tini -- msc -q" musicn 2 minutes ago Up 2 minutes 0.0.0.0:7478->7478/tcp, :::7478->7478/tcp
停止并删除容器
[root@DockerCentos7 musicn]# docker-compose down
WARN[0000] /data/musicn/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 2/2
✔ Container musicn Removed 0.5s
✔ Network musicn_default Removed 0.3s
[root@DockerCentos7 musicn]# docker-compose ps
WARN[0000] /data/musicn/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
[root@DockerCentos7 musicn]# docker rmi ghcr.io/wy580477/musicn-container:latest
访问Musicn
检查防火墙
[root@DockerCentos7 musicn]# firewall-cmd --zone=public --list-ports #检查端口开放
80/tcp
[root@DockerCentos7 musicn]# firewall-cmd --zone=public --add-port=7478/tcp --permanent #添加端口
success
[root@DockerCentos7 musicn]# firewall-cmd --reload # 重载(每次更改firewall规则后需重新加载)
success
[root@DockerCentos7 musicn]# firewall-cmd --zone=public --list-ports #查看端口,端口已开放
80/tcp 7478/tcp
访问
访问地址:192.168.10.143:7478,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
选择音源,这里选择酷狗音乐,搜索栏填写需要搜索的歌曲名,在点击下载即可。
总结
在使用 Docker 部署 Musicn 音乐下载工具的过程中,Docker 的便捷性和高效性得到了充分体现。通过简单的 Dockerfile 和 docker-compose.yaml 文件,能够快速搭建和运行 Musicn,大幅简化了环境配置和依赖管理。Musicn 的命令行界面简洁易用,支持多个音乐平台的播放和下载功能。虽然目前不支持无损格式和部分会员专属歌曲,但普通 MP3 格式的下载和播放已经非常方便。这次实践展示了 Docker 在快速部署和管理应用方面的优势。