自建私有云NAS的Docker部署

平台Ubuntu 20.04 清华源 成功搭建,可以使用 docker-compose 或 docker cli
以下使用两种方法 故此记录为笔记。

清华源安装Docker

清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/

在这里插入图片描述

Docker常用镜像命令

  1. docker 搜索镜像
 docker search IMAGE
  1. 拉取镜像
docker pull IMAGE:TAG
  1. 删除镜像
docker rmi IMAGE[:tag]

Docker常用容器命令

  1. 新建并启动容器
docker run [options] IMAGE[:TAG]
  1. 启动容器
docker start CONTAINER
  1. 重启容器
docker restart CONTAINER
  1. 停止容器
docker stop CONTAINER NAME
  1. 删除容器
docker rm CONTAINER NAME
  1. 容器和宿主机数据共享
docker run ... –v 宿主机目录:容器内目录 ......

语法:创建容器时,使用 –v 参数 设置数据卷。如果目录不存在,会自动创建。

Docker查看安装路径以及修改安装路径

-----------------------------------------docker查看安装路径以及修改安装路径 -----------------------------------------
查看本机安装路径

sudo docker info | grep "Docker Root Dir"

修改安装路径

  1. 停止docker
systemctl stop docker.socket
systemctl stop docker
  1. 移动docker所有文件
mv /etc/docker /home/docker
  1. 建立软连接
ln -s /home/docker /etc/docker
  1. 重启docker
systemctl restart docker

Docker-compose命令对象与格式

命令使用说明

docker-compose build 构建(重新构建)项目中的服务容器
docker-compose config 检测compose文件的错误
docker-compose up 启动服务
docker-compose down 停止容器
docker-compose images 列出项目中所包含的镜像
docker-compose logs 查看服务容器的日志
docker-compose kill 发送 SIGKILL 信号来强制停止服务容器
docker-compose port 查看某个容器端口所映射的公共端口
docker-compose ps 列出项目中目前的所有容器
docker-compose restart 重启项目中的服务
docker-compose rm 删除所有停止状态的服务容器
docker-compose run 在指定服务上运行一个命令
docker-compose scale 设置指定服务运行的容器个数
docker-compose stop 停止处于运行状态的容器
docker-compose start 启动被stop的服务容器
docker-compose top 查看各个服务容器内运行的进程
docker-compose pause 暂停一个服务容器
docker-compose unpause 恢复处于暂停状态中的服务

部署需要用到的应用 ---- docker cli 方法

安装 Samba 服务器

----------------------------------------- Samba 服务器 -----------------------------------------

系统上安装 Samba 服务器。Samba 是一个开源软件,它允许你在 Windows Linux 或 Unix 系统上共享文件和打印机。
要安装 Samba,需要使用以下命令:

sudo apt install samba
samba --version

Version 4.15.13-Ubuntu

在这里插入图片描述

sudo vim /etc/samba/smb.conf

最后添加到/etc/samba/smb.conf 末尾

[2T]
comment = share folder
path = /mnt/2T
create mask = 0755
directory make = 0755
valid users = nas
force user = nas
force group = nas
public = yes
available = yes
writable = yes
sudo smbpasswd -a 用户名
sudo /etc/init.d/smbd restart
或
sudo service smdb restart

Windows平台打开,映射网络驱动器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装 BitTorrent 客户端

-----------------------------------------BitTorrent 客户端-----------------------------------------

qBittorrent 是一个开源的 BitTorrent 客户端,适用于 Windows、Mac 和 Linux。它具有许多功能,包括多线程下载、磁力链接支持、RSS 支持和代理支持。它还支持各种插件,可以扩展其功能。

自我感觉不好用,我太菜了。然后把它删掉了。

在这里插入图片描述

sudo  docker run -d \
   --name=qbittorrent \
   --restart unless-stopped \
   -e PUID=1000 \
   -e PGID=1000 \
   -e TZ=Asia/Shanghai \
   -e WEBUI_PORT=8080 \
   -p 8080:8080 \
   -p 6881:6881 \
   -p 6881:6881/udp \
   -v /etc/docker/qbittorrent:/config  \
   -v /mnt/2T/movies:/downloads  \
   linuxserver/qbittorrent

-v /etc/docker/qbittorrent:/config \ 更改自己的文件路径
-v /mnt/2T/movies:/downloads \ 更改自己的文件路径
尽量不使用它,目前qbittorrent出现很多问题,我找不到解决办法。

安装 Home Assistant 开源家庭自动化平台

-----------------------------------------Home Assistant 开源家庭自动化平台-----------------------------------------

Home Assistant 是一个开源的家庭自动化平台,它可以让你使用各种设备来控制你的家。它支持各种设备,包括灯、插座、恒温器、门锁和摄像头。你可以使用 Home Assistant 来创建各种自动化,例如在你离开家时关闭灯,或者在你回家时打开恒温器。

在这里插入图片描述

sudo docker run -d  \
    --name=homeassistant  \
    --privileged  \
    --restart=unless-stopped\
    -e TZ=Asia/Shanghai \
    -v /etc/docker/homeassistant:/config  \
    --network=host \
    ghcr.io/home-assistant/home-assistant:stable

–privileged //Docker 应用容器 获取宿主机root权限(特殊权限)

安装 Jellyfin 开源的媒体服务器

-----------------------------------------Jellyfin 开源的媒体服务器-----------------------------------------

Jellyfin 是一个开源的媒体服务器,它可以让你在任何设备上播放你的媒体。它支持各种格式的视频、音乐和照片,并可以与各种设备同步。

在这里插入图片描述

sudo docker run -d \
 --name=jellyfin \
 --restart=always \
 -p 8096:8096 \
 -d \
 -v /etc/docker/jellyfin:/config \
 -v /srv/jellyfin/cache:/cache \
 -v /mnt/2T/jellyfin:/media \
 --net=host \
 jellyfin/jellyfin:latest

默认情况下,Docker 容器不会在停止后自动重新启动。如果你想在容器停止后自动重新启动容器,你可以使用 --restart unless-stopped 或 --restart=always 选项。

以下是 --restart unless-stopped 和 --restart=always 选项的区别:

  • –restart unless-stopped 选项会在容器停止后自动重新启动容器,除非容器是手动停止的。
  • –restart=always 选项会在容器停止后自动重新启动容器,无论容器是手动停止的还是由于其他原因停止的。

安装 Aria2开源多协议下载器与Ariang基于 Web 的 Aria2 前端

-----------------------------------------Aria2开源多协议下载器与Ariang基于 Web 的 Aria2 前端-----------------------------------------

Aria2 是一个开源的多协议下载器,支持 HTTP、HTTPS、FTP、BitTorrent、Metalink 和 MMS。它可以使用多线程下载,并支持断点续传。Ariang 是一个基于 Web 的 Aria2 前端,它提供了一个易于使用的界面来管理你的下载。

自我感觉不好用,我太菜了。然后把它删掉了。

在这里插入图片描述

sudo docker run -d \
 --name aria2 \
 --restart=always \
 --log-opt max-size=1m \
 -e PUID=$UID \
 -e PGID=$GID \
 -e UMASK_SET=022 \
 -e RPC_SECRET=sss569 \
 -e RPC_PORT=6800 \
 -e LISTEN_PORT=6888 \
 -p 16800:6800 \
 -p 16888:6888 \
 -p 16888:6888/udp \
 -v /etc/docker/aria2/config:/config \
 -v /mnt/2T/aria2_downloads:/aria2_downloads\
 p3terx/aria2-pro:latest
 
sudo docker run -d \
 --name=ariang \
 --restart=always \
 --log-opt max-size=1m \
 -p 16880:6880 \
 p3terx/ariang:latest
 配置 RPC
 http://IP:16880

第二种
superng6/aria2:a2b-latest 镜像可屏蔽迅雷、qq旋风、影音先锋、百度网盘等吸血客户端A2B=true(集成自makeding/aria2b,感谢)

docker run -d \
  --name=aria2 \
  -e PUID=1026 \
  -e PGID=100 \
  -e TZ=Asia/Shanghai \
  -e SECRET=yourtoken \
  -e CACHE=512M \
  -e PORT=6800 \
  -e BTPORT=32516 \
  -e WEBUI=true \
  -e WEBUI_PORT=8080 \
  -e UT=true \
  -e RUT=true \
  -e FA=falloc \
  -e QUIET=true \
  -e SMD=true \
  -p 32516:32516 \
  -p 32516:32516/udp \
  -p 6800:6800 \
  -p 8080:8080 \
  -v /etc/docker/aria2/config:/config \
  -v /mnt/2T/aria2_downloads:/aria2_downloads\
  --restart unless-stopped \
  superng6/aria2:webui-latest

How to run Docker Aria2 WebUI AriaNg

docker run -d -p 80:80/tcp superng6/ariang:latest

安装 MySQL 关系型数据库管理系统

-----------------------------------------MySQL 关系型数据库管理系统-----------------------------------------

MySQL 是一个关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,被广泛应用于各种应用程序开发,包括网站、移动应用程序、桌面应用程序等。MySQL 具有高性能、高可靠性、高可扩展性等特点,并且支持多种操作系统平台,如 Linux、Windows、macOS 等。

sudo docker run -d \
 --name mysql \
 --restart=always \
 -v mysql:/etc/docker/mysql \
 -e MYSQL_ROOT_PASSWORD=newpassword \
 -e MYSQL_DATABASE=nextcloud \
 -e MYSQL_USER=nextcloud \
 -e MYSQL_PASSWORD=password \
 -p 3306:3306 \
 mysql:8.0

root@NAS-UT3000F:/home/nas# docker exec -it mysql /bin/bash
bash-4.4# mysql -u nextcloud -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 77 Server version: 8.0.35 MySQL Community Server - GPL
Copyright © 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| nextcloud |
| performance_schema |
±-------------------+
3 rows in set (0.01 sec)
mysql>

以下命令将在运行中的容器中执行一个交互式 shell:

docker exec -it mysql /bin/bash

该命令将打开一个交互式 shell,您可以在其中执行任何命令。

以下命令将连接到 MySQL 数据库,并使用 nextcloud 用户名和密码进行身份验证:

mysql -u nextcloud -p

该命令将打开一个 MySQL 命令行界面,您可以在其中执行 MySQL 命令。

注意,如果您没有指定密码,则 MySQL 会提示您输入密码。

show databases;

“show databases;” 是一个 MySQL 命令,用于显示当前 MySQL 服务器上所有的数据库

mysql> exit
Bye
bash-4.4# exit
exit

安装 Nextcloud Nextcloud 开源的自托管云存储和协作平台

-----------------------------------------安装 Nextcloud Nextcloud开源的自托管云存储和协作平台-----------------------------------------

Nextcloud 是一个开源的自托管云存储和协作平台,它提供了文件同步、共享、协作和访问控制等功能。你可以使用 Nextcloud 在自己的服务器上搭建一个私有的云存储服务,以存储和管理你的文件、日历、联系人和其他数据。

因为上面已建好Nextcloud 的数据库,所以可以进行以下操作:

sudo docker run -d \
 --name nextcloud \
 --restart=always \
 -v /mnt/2T/nextcloud:/var/www/html \
 --link mysql:mysql \
 -p 8080:80 \
 nextcloud:latest

注意:apache 映像包含一个 Web 服务器并公开端口 80。我给指定的端口为8088。
nextcloud
–link将两个容器连接,这样nextcloud就会直接使用mysql容器作为数据库了。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
如遇到错误:nextcloud 您的数据目录可被其他用户读取 请更改权限为 0770 以避免其他用户查看目录

'check_data_directory_permissions'=> false,

部署需要用到的应用 ---- docker-compose 方法

安装Mariadb和Nextcloud

本指南假设你已经在服务器上安装了Docker和Docker-compose:

sudo apt-get install -y docker-compose

创建一个名为docker- composition .yml的文本文件:

vim docker-compose.yml

并将以下内容粘贴进去:


version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

然后使用docker-compose up -d就行了。

docker-compose up
若是要后台运行: $ docker-compose up -d
若不使用默认的docker-compose.yml 文件名:
docker-compose -f server.yml up -d 

安装Mariadb和FileRun

version: '2'

services:
  db:
    image: mariadb:10.6
    container_name: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: password 
      MYSQL_USER: filerun
      MYSQL_PASSWORD: filerun
      MYSQL_DATABASE: filerun
    volumes:
      - db:/var/lib/mysql

  web:
    image: filerun
    container_name: filerun
    environment:
      FR_DB_HOST: db
      FR_DB_PORT: 3306
      FR_DB_NAME: filerun
      FR_DB_USER: filerun
      FR_DB_PASS: filerun
      APACHE_RUN_USER: www-data
      APACHE_RUN_USER_ID: 33
      APACHE_RUN_GROUP: www-data
      APACHE_RUN_GROUP_ID: 33
    depends_on:
      - db
    links:
      - db:db
    ports:
      - "1100:80"
    volumes:
      - /etc/docker/filerun/html:/var/www/html
      - /mnt/2T/filerun/userfiles/user-files:/user-files
  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有余地 EliasJie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值