Skip to content

一款基于 Linuxserver.io 的 KasmVNC 镜像以及百度网盘官方客户端的 Docker 镜像

License

Notifications You must be signed in to change notification settings

YuCat-OVO/BaiduNetdisk-Docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BaiduNetdisk-Docker

一款基于 Linuxserver.ioKasmVNC 基础镜像以及百度网盘官方客户端的 Docker 镜像,支持 amd64 和 arm64 架构。

镜像设置

该镜像部署了百度网盘桌面应用程序,并通过浏览器中的 KasmVNC 服务器提供其界面。该接口位于 http://your-ip:8080 或者 https://your-ip:8181

默认情况下,主 GUI 没有设置密码。可选环境变量 PASSWORD 将允许为用户 abc 设置 http auth 密码。

所有基于 KasmVNC 的 GUI 容器中的选项

该容器基于 Docker Baseimage KasmVNC,这意味着有额外的环境变量和运行配置来启用或禁用特定功能。

可选环境变量

Variable Description
CUSTOM_PORT 容器侦听 http 的内部端口(如果需要更改默认的 8080 端口)。
CUSTOM_HTTPS_PORT 容器侦听 https 的内部端口(如果需要更改默认的 8181 端口)。
CUSTOM_USER HTTP 基本身份验证用户名,默认为 abc。
PASSWORD HTTP 基本身份验证密码,默认为 abc。如果未设置,则不会进行身份验证
SUBFOLDER 应用程序的 subfolder 参数(如果为容器运行了子文件夹反向代理),需要使用两个斜线包裹 例如: /subfolder/
TITLE Web 浏览器上显示的页面标题,默认为 “KasmVNC Client”。
FM_HOME 这是文件管理器的主目录(默认主目录),默认为“/config”。
START_DOCKER 如果设置为 false,具有特权的容器将不会自动启动 DinD Docker 设置。
DRINODE 如果在 /dev/dri 中挂载了支持硬件加速的 GPU 设备(详见:DRI3 GPU Acceleration),这个变量允许您指定设备,例如: /dev/dri/renderD128
LC_ALL 设置容器中运行的语言,例如:zh_CN.UTF-8 en_US.UTF-8
NO_DECOR 如果设置,应用程序将在没有窗口边框的情况下运行,以用作 PWA。
NO_FULL 使用 openbox 时不要自动全屏应用程序。

可选的运行配置

Variable Description
--privileged 将在容器内启动 Docker in Docker (DinD) 设置,以便在隔离环境中使用 docker。为了提高性能,可以将容器内的 Docker 目录挂载到主机,例如:-v /home/user/docker-data:/var/lib/docker 。
-v /var/run/docker.sock:/var/run/docker.sock 安装在主机的 Docker 套接字中,以通过 CLI 与其交互或使用支持 Docker 的应用程序。
--device /dev/dri:/dev/dri 将 GPU 安装到容器中,这可以与 DRINODE 环境变量结合使用,以利用主机显卡来实现 GPU 加速应用程序。仅支持开源驱动程序,例如:(Intel、AMDGPU、Radeon、ATI、Nouveau)

无损模式

通过将流质量预设更改为“Extreme”,该容器能够以高帧速率向您的 Web 浏览器提供真正的无损图像,更多信息请参见此处。为了从非 localhost 端点使用此模式,需要使用 8181 上的 HTTPS 端口。如果使用端口 8080 的反向代理,则需要按照此处所述设置特定标头。.

如何部署

为了帮助您开始从此镜像创建容器,您可以使用 docker-compose 或 docker cli。

Docker 部署:

docker-compose (推荐, 点击这里查看更多信息)

---
services:
  baidunetdisk:
    image: docker.io/yucatovo/baidunetdisk-docker:latest
    container_name: baidunetdisk
    security_opt:
      - seccomp:unconfined #可选
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - PASSWORD= #可选
      - CLI_ARGS= #可选
    volumes:
      - /配置文件位置:/config/
      - /下载位置:/config/baidunetdiskdownload
    ports:
      - 8080:8080
      - 8181:8181
    restart: unless-stopped
docker run -d \
  --name=baidunetdisk \
  --security-opt seccomp=unconfined `#可选` \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e PASSWORD= `#可选` \
  -e CLI_ARGS= `#可选` \
  -p 8080:8080 \
  -p 8181:8181 \
  -v /配置文件位置:/config \
  -v /下载位置:/config/baidunetdiskdownload \
  --restart unless-stopped \
  docker.io/yucatovo/baidunetdisk-docker:latest

Podman 部署:

CLI

podman run -d \
  --name=baidunetdisk \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e PASSWORD= `#可选` \
  -e CLI_ARGS= `#可选` \
  -p 8080:8080 \
  -p 8181:8181 \
  -p 8081:8081 \
  -v /配置文件位置:/config \
  -v /下载位置:/config/baidunetdiskdownload \
  --restart unless-stopped \
  docker.io/yucatovo/baidunetdisk-docker:latest

Deployment

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: baidunetdisk-deployment
  annotations:
    io.containers.autoupdate: registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: baidunetdisk
  template:
    metadata:
      labels:
        app: baidunetdisk
    spec:
      restartPolicy: always
      containers:
        - name: baidunetdisk
          image: docker.io/yucatovo/baidunetdisk-docker:latest
          volumeMounts:
            - name: config-path
              mountPath: /config/
            - name: download-path
              mountPath: /config/baidunetdiskdownload/
          ports:
            - containerPort: 8080
              hostPort: 8080
              protocol: TCP
            - containerPort: 8181
              hostPort: 8181
              protocol: TCP
          env:
            - name: TZ
              value: "Asia/Shanghai"
            - name: DRINODE # 可选
              value: "/dev/dri/renderD128"
      volumes:
        - name: config-path
          hostPath:
            path: /配置文件位置
            type: Directory
        - name: download-path
          hostPath:
            path: /下载位置
            type: Directory

注意事项

  • KasmVNC 对于 Firefox 的支持不够好,推荐使用 Chromium 作为核心的浏览器获得最佳体验(比如 KasmVNC 的无缝剪贴板)。
  • Podman 如果需要启用硬件加速,可能需要往 /etc/containers/containers.conf.d/ 添加配置(详见:containers.conf.5):
 [containers]
 devices = ["/dev/dri/card1:rwm","/dev/dri/renderD128:rwm"]
  • 如果遇到 Failed to close file descriptor for child process (Operation not permitted) 的错误,请使用 --security-opt seccomp=unconfined 启动(来源),可能会有安全问题。
  • Linuxserver.io 镜像不设置 PUIDPGID 变量的时候会默认使用 911 作为运行用户和组 ID,请确认用户权限正确。
  • 由于本人手上并没有可以进行测试的 arm64 设备,所以对于 arm64 的支持可能有不足。如果您在使用的时候遇到了问题,可以直接下载百度网盘Linux版本或者尝试使用其他大佬所编写的镜像 [eMUQI/baidunetdisk-arm64-vnc] [gshang2017/docker] 查看是否能够正常运行。

感谢以下项目:

截图

arm64

其他

同时也感谢参与反馈与测试的所有人

About

一款基于 Linuxserver.io 的 KasmVNC 镜像以及百度网盘官方客户端的 Docker 镜像

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •