Brave
@47c132035ed7a1105a867946b99d67af 开源软件研究 公开
讨论 Docker入门之使用Dockge搭建家用资料 & 媒体服务器

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

请确保你已经读过了此前的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来写作的文件,你可以通过人机来协同自定义,形成你自己的更好实践。