Decentralization? We're still early!

Docker入门之使用Dockge搭建家用资料 & 媒体服务器

  • Docker入门之使用Dockge搭建家用资料 & 媒体服务器

    發布人 Brave 2024-08-10 at 06:08

    请确保你已经读过了此前的Docker入门讨论,这是一篇应用性的讨论。Get your hands dirty!

    一、如何安装Docker

    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    sudo apt update

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    sudo docker --version

    二、如何安装Dockge

    # Create directories that store your stacks and stores Dockge's stack
    sudo mkdir -p /opt/stacks /opt/dockge
    cd /opt/dockge

    # Download the compose.yaml
    sudo curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml

    # Start the server
    sudo docker compose up -d

    # If you are using docker-compose V1 or Podman
    # sudo docker-compose up -d

    三、在Dockge中添加运行yml文件

    请确认你已经在服务器上安装了Docker和Dockge。具体添加方法请自行探索,不难。这里仅仅讨论如何编写yml文件并运行。

    该文件由GPT4生成,需求目标是通过filebrowser来管理书籍、媒体资料,便于后期备份。通过transmission来下载,用Jellyfin来运行家庭影院。相互之间可以文件共享。仍需进一步进行防火墙等安全配置。

    prompt为:我需要让filebrowser、transmission和jellyfin共享文件资源,在docker中运行,请帮我写一个yml。

    version: '3.8' # 指定 Docker Compose 文件的版本

    services:

    filebrowser:

    image: filebrowser/filebrowser # 使用 filebrowser 的官方镜像

    container_name: filebrowser # 容器名称

    volumes:

    - /path/to/your/files:/srv # 将主机上的文件目录挂载到容器内的 /srv 目录

    ports:

    - 8080:80 # 将主机的 8080 端口映射到容器的 80 端口

    restart: unless-stopped # 容器在停止或崩溃后自动重启,除非手动停止

    transmission:

    image: linuxserver/transmission # 使用 Transmission 的官方镜像

    container_name: transmission # 容器名称

    environment:

    - PUID=1000 # 设置用户 ID

    - PGID=1000 # 设置组 ID

    - TZ=Etc/UTC # 设置时区

    volumes:

    - /path/to/your/files:/downloads # 将主机上的文件目录挂载到容器内的 /downloads 目录

    - /path/to/transmission/config:/config # 将主机上的配置目录挂载到容器内的 /config 目录

    ports:

    - 9091:9091 # 将主机的 9091 端口映射到容器的 9091 端口(Web UI)

    - 51413:51413 # 将主机的 51413 端口映射到容器的 51413 端口(TCP)

    - 51413:51413/udp # 将主机的 51413 端口映射到容器的 51413 端口(UDP)

    restart: unless-stopped # 容器在停止或崩溃后自动重启,除非手动停止

    (原本还有Calibre-Web,因为有特殊配置问题,单独部署)

    jellyfin:

    image: jellyfin/jellyfin # 使用 Jellyfin 的官方镜像

    container_name: jellyfin # 容器名称

    environment:

    - PUID=1000 # 设置用户 ID

    - PGID=1000 # 设置组 ID

    - TZ=Etc/UTC # 设置时区

    volumes:

    - /path/to/your/files:/media # 将主机上的文件目录挂载到容器内的 /media 目录

    - /path/to/jellyfin/config:/config # 将主机上的配置目录挂载到容器内的 /config 目录

    - /path/to/jellyfin/cache:/cache # 将主机上的缓存目录挂载到容器内的 /cache 目录

    ports:

    - 8096:8096 # 将主机的 8096 端口映射到容器的 8096 端口

    - 8920:8920 # 将主机的 8920 端口映射到容器的 8920 端口(HTTPS)

    restart: unless-stopped # 容器在停止或崩溃后自动重启,除非手动停止

    通过在Dockge中运行上述文件,即可得到一个家用书籍 & 媒体服务器。其中用到的软件,可在基地开源软件小组中找到相关信息。

    这个讨论是一个基础,用来展示相关技术实现步骤。也是使用GPT4来写作的文件,你可以通过人机来协同自定义,形成你自己的更好实践。

    Brave 回复 3 months, 2 weeks ago 1 成員 · 0 回复
  • 0 回复

Sorry, there were no replies found.

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在