
用于创建包含TinyMediaManager及GUI界面的Docker容器的仓库。
!docker pulls !docker stars  !docker size
!Docker Image Version (tag latest semver) !docker size
如果从v3迁移到v4,请先备份数据。建议创建新的主机目录映射新配置,并将v3版本的"/config/data"文件夹复制到新目录。 请查看官方升级文档:[***]
这是一个功能完整的TinyMediaManager Docker镜像。
基于Alpine Linux,体积非常小。
已在Synology和QNAP上测试可用,但应适用于任何x86_64设备。
感谢@jlesage提供出色的GUI应用基础镜像。
bashdocker run -d --name=tinymediamanager \ -v /share/Container/tinymediamanager/config:/config \ -v /share/Container/tinymediamanager/media:/media \ -e GROUP_ID=0 -e USER_ID=0 -e TZ=Europe/Madrid \ -p 5800:5800 \ -p 5900:5900 \ romancin/tinymediamanager:v4-latest
通过http://你的主机IP:5800访问TinyMediaManager GUI。
| 标签 | 描述 |
|---|---|
latest | TMM v3的最新可用版本 |
latest-v4 | TMM v4的最新可用版本 |
vX.X.X | 直接指向特定TMM版本(v3或v4) |
要自定义容器的某些属性,可通过-e参数传递以下环境变量(每个变量一个)。参数值格式为<变量名>=<值>。
| 变量 | 描述 | 默认值 |
|---|---|---|
USER_ID | 应用运行的用户ID。参见用户/组ID了解何时需要设置。 | 1000 |
GROUP_ID | 应用运行的组ID。参见用户/组ID了解何时需要设置。 | 1000 |
SUP_GROUP_IDS | 应用的补充组ID,以逗号分隔。 | (未设置) |
UMASK | 控制新创建文件权限的掩码,值为八进制。默认不设置,使用默认umask 022,即新文件对所有人可读,仅所有者可写。参见在线umask计算器:[***] | (未设置) |
TZ | 容器的时区。也可通过映射主机的/etc/localtime到容器来设置时区。 | Etc/UTC |
KEEP_APP_RUNNING | 设置为1时,应用崩溃或用户退出后将自动重启。 | 0 |
APP_NICENESS | 应用运行的优先级。nice值-20为最高优先级,19为最低。默认不设置,使用默认值0。注意:负nice值(提高优先级)需要额外权限,此时容器需使用--cap-add=SYS_NICE选项运行。 | (未设置) |
CLEAN_TMP_DIR | 设置为1时,容器启动时删除/tmp目录下的所有文件。 | 1 |
DISPLAY_WIDTH | 应用窗口宽度(像素)。 | 1280 |
DISPLAY_HEIGHT | 应用窗口高度(像素)。 | 768 |
SECURE_CONNECTION | 设置为1时,通过加密连接访问应用GUI(Web浏览器或VNC客户端)。详见安全部分。 | 0 |
VNC_PASSWORD | 连接应用GUI所需的密码。详见VNC密码部分。 | (未设置) |
X11VNC_EXTRA_OPTS | 传递给容器中运行的x11vnc服务器的额外选项。警告:高级用户使用,不了解请勿设置。 | (未设置) |
ENABLE_CJK_FONT | 设置为1时,安装开源字体文泉驿正黑,包含大量中/日/韩字符。 | 0 |
下表描述容器使用的数据卷。通过-v参数设置映射,格式为<主机目录>:<容器目录>[:权限]。
| 容器路径 | 权限 | 描述 |
|---|---|---|
/config | rw | 应用存储配置、日志及需持久化的文件。 |
/media | rw | 存储媒体文件的位置。 |
下表列出容器使用的端口,可通过-p参数映射到主机(每个端口一个映射),格式为<主机端口>:<容器端口>。容器内端口不可更改,主机端口可任意指定。
| 端口 | 主机映射 | 描述 |
|---|---|---|
| 5800 | 必须 | 通过Web界面访问应用GUI的端口。 |
| 5900 | 可选 | 通过VNC协议访问应用GUI的端口。如不使用VNC客户端则可选。 |
使用数据卷(-v标志)时,主机和容器之间可能出现权限问题。例如,容器内的用户可能在主机上不存在,导致主机无法正常访问共享卷上的文件和文件夹。
为避免问题,可指定应用运行的用户。
通过USER_ID和GROUP_ID环境变量将用户ID和组ID传递给容器。
要找到正确的ID,在主机上以拥有数据卷的用户身份执行以下命令:
id <用户名>
输出类似:
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)
其中uid(用户ID)和gid(组ID)即为应传递给容器的值。
默认情况下,应用GUI通过未加密连接(HTTP或VNC)访问。
可通过SECURE_CONNECTION环境变量启用安全连接。详见环境变量部分了解如何设置环境变量。
启用后,通过浏览器访问应用GUI时使用HTTPS连接,所有HTTP访问自动重定向到HTTPS。
使用VNC客户端时,VNC连接通过SSL加密。注意,少数VNC客户端支持此方式,SSVNC是其中之一。
容器需要以下证书文件。默认情况下,如缺失会生成并使用自签名证书。所有文件均为PEM编码的x509证书。
| 容器路径 | 用途 | 内容 |
|---|---|---|
/config/certs/vnc-server.pem | VNC连接加密。 | VNC服务器私钥和证书,包含任何根证书和中间证书。 |
/config/certs/web-privkey.pem | HTTPS连接加密。 | Web服务器私钥。 |
/config/certs/web-fullchain.pem | HTTPS连接加密。 | Web服务器证书,包含任何根证书和中间证书。 |
注意:为避免浏览器或VNC客户端出现证书有效性警告/错误,请确保提供自己的有效证书。
注意:证书文件会被监控,检测到更改时相关守护进程会自动重启。
可通过以下两种方式指定密码以限制应用访问:
VNC_PASSWORD环境变量。/config卷的根目录创建.vncpass_clear文件,文件中包含明文密码。容器启动时,文件内容会被加密并移至.vncpass。VNC密码的安全级别取决于两点:
使用VNC密码时,强烈建议启用安全连接,防止密码在未加密通道中明文传输。
注意:密码限制为8个字符。此限制来自远程帧缓冲协议RFC(见7.2.2节)。超过限制的字符将被忽略。
要获取运行中容器的shell访问,执行以下命令:
docker exec -ti 容器名或ID sh
其中容器名或ID是创建容器时使用的ID或名称(例如tinymediamanager)。
以下是需要添加到NGINX配置以反向代理到此容器的配置。
反向代理服务器可基于主机名或URL路径路由HTTP请求。
在此场景中,每个主机名路由到不同的应用/容器。
例如,假设反向代理服务器与容器运行在同一台机器上。服务器会将所有发送到tinymediamanager.domain.tld的HTTP请求代理到127.0.0.1:5800的容器。
以下是添加到NGINX配置的相关配置元素:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream tinymediamanager { # 如果反向代理服务器与Docker容器不在同一台机器上,此处使用Docker主机的IP。 # 确保根据容器的5800端口在主机上的映射调整端口。 server 127.0.0.1:5800; } server { [...] server_name tinymediamanager.domain.tld; location / { proxy_pass http://tinymediamanager; } location /websockify { proxy_pass http://tinymediamanager; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 86400; } }
在此场景中,主机名相同,但使用不同的URL路径路由到不同的应用/容器。
例如,假设反向代理服务器与容器运行在同一台机器上。服务器会将所有server.domain.tld/tinymediamanager的HTTP请求代理到127.0.0.1:5800的容器。
以下是添加到NGINX配置的相关配置元素:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream tinymediamanager { # 如果反向代理服务器与Docker容器不在同一台机器上,此处使用Docker主机的IP。 # 确保根据容器的5800端口在主机上的映射调整端口。 server 127.0.0.1:5800; } server { [...] location = /tinymediamanager {return 301 $scheme://$http_host/tinymediamanager/;} location /tinymediamanager/ { proxy_pass http://tinymediamanager/; location /tinymediamanager/websockify { proxy_pass http://tinymediamanager/websockify/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 86400; } } }
容器使用遇到问题或有疑问?请https://github.com/romancin/tinymediamanager4-docker/issues/new%E3%80%82
以下是 romancin/tinymediamanager 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务