]([] 或任何VNC客户端访问。
。详见数据卷部分。 |
| -p | 设置网络端口映射(将容器内部端口暴露给主机)。详见端口部分。 |
要自定义容器的某些属性,可通过-e参数传递以下环境变量(每个变量一个-e)。参数值格式为<变量名>=<值>。
| 变量 | 描述 | 默认值 |
|---|---|---|
USER_ID | 应用程序运行的用户ID。详见用户/组ID了解何时需要设置。 | 1000 |
GROUP_ID | 应用程序运行的组ID。详见用户/组ID了解何时需要设置。 | 1000 |
SUP_GROUP_IDS | 应用程序的补充组ID,以逗号分隔。 | (未设置) |
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 | 应用程序存储配置、日志和需要持久化的文件的位置。 |
/storage | ro/rw | 包含主机上需要被应用程序访问的文件。如果希望Picard重新标记/重命名文件,应设置为rw。 |
以下是容器使用的端口列表。可通过-p参数映射到主机(每个端口映射一个-p)。映射格式为<主机端口>:<容器端口>。容器内部端口不可更改,但可自由使用主机上的任何端口。
| 端口 | 主机映射 | 描述 |
|---|---|---|
| 5800 | 必填 | 通过Web界面访问应用程序GUI的端口。 |
| 5900 | 可选 | 通过VNC协议访问应用程序GUI的端口。如果不使用VNC客户端,则可选。 |
| 8000 | 可选 | 用于访问Picard“浏览器集成”功能的端口。必须在Picard选项中启用(高级 > 网络,勾选“浏览器集成”并取消勾选“仅监听本地主机”)。 |
如前所述,环境变量、卷映射和端口映射是在创建容器时指定的。
以下步骤描述了添加、删除或更新现有容器参数的方法。基本思路是销毁并重新创建容器:
shelldocker stop picard
shelldocker rm picard
docker run命令创建/启动容器,根据需要调整参数。注意:由于所有应用程序数据都保存在容器的/config目录下,销毁并重新创建容器不会导致数据丢失,应用程序将恢复到之前的状态(只要/config目录的映射保持不变)。
以下是可与Docker Compose一起使用的docker-compose.yml文件示例。
请根据需要调整。注意示例中仅包含必填的网络端口。
yamlversion: '3' services: picard: image: mikenye/picard:latest ports: - "5800:5800" volumes: - "/path/to/config:/config:rw" - "/path/to/music:/storage:rw"
如果运行容器的系统无法轻松更新Docker镜像,可按照以下步骤操作:
shelldocker pull mikenye/picard
shelldocker stop picard
shelldocker rm picard
docker run命令启动容器。使用数据卷(-v标志)时,主机和容器之间可能会出现权限问题。例如,容器内的用户可能在主机上不存在,这可能导致主机无法正确访问共享卷上的文件和文件夹。
为避免问题,可指定应用程序应运行的用户。
通过USER_ID和GROUP_ID环境变量将用户ID和组ID传递给容器。
要找到正确的ID,在主机上使用拥有数据卷的用户运行以下命令:
shellid <用户名>
输出类似:
textuid=1000(我的用户) gid=1000(我的用户) groups=1000(我的用户),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)
其中uid(用户ID)和gid(组ID)是应传递给容器的值。
假设容器端口映射到主机的相同端口,可通过以下方式访问应用程序的图形界面:
texthttp://<主机IP地址>:5800
text<主机IP地址>:5900
默认情况下,应用程序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访问,执行以下命令:
shelldocker exec -ti picard bash
Picard可以从光驱查找CD。
默认情况下,Docker容器无法访问主机设备。但可通过--device DEV参数授予对一个或多个设备的访问权限。
光驱通常以/dev/srX为设备名。例如,第一个光驱是/dev/sr0,第二个是/dev/sr1,依此类推。要允许Picard访问第一个光驱,需要此参数:
shell--device /dev/sr0
要轻松找到光驱设备,启动容器并查看日志中类似以下的消息:
text... [cont-init.d] 95-check-optical-drive.sh: executing... [cont-init.d] 95-check-optical-drive.sh: looking for usable optical drives... [cont-init.d] 95-check-optical-drive.sh: found optical drive /dev/sr0, but it is not usable because is not exposed to the container. [cont-init.d] 95-check-optical-drive.sh: no usable optical drive found. [cont-init.d] 95-check-optical-drive.sh: exited 0. ...
对容器有疑问或遇到问题?请创建新issue。
我还有一个***频道,欢迎加入交流。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429