APP下载 微博 微信

Hao4K影音


[经验心得] 教你畅快玩转NAS之Docker极速上手使用教程分享

[复制链接]

发表于 2020年01月24日 13:02 51414 0 来源:媒体存储> 经验心得 回帖奖励 |正序浏览 |

Blue_ 帖主

2020-1-24 13:02

教你畅快玩转nas之Docker极速上手使用教程分享

这里上面的Docker教程很多,但大多都是面向具体某个应用的手把手教程,并没有讲清楚为什么这么做
当有自己其他需求的时候,小白往往就不知道怎么做了
与其看无数篇小白教程不如搞懂原理是什么,为什么这么设置。但如果是非专业用户为了方便使用NAS,专门去学习Docker,耗费的时间成本非常高。本文的目的在于让非专业普通家庭用户快速学会使用docker,轻松搭建家庭NAS所需的各种应用

Docker的图标是一头装满集装箱的鲸鱼在大海遨游

  我们可以从docker的图标来理解docker究竟是什么。大海指的就是我们的电脑,叫做
宿主主机。大海里面有各式各样的鱼,代指各种应用程序,而这条大鲸鱼就是其中的一个程序——docker。鲸鱼背上的集装箱就是
docker容器。
作为普通家庭用户,把docker理解成为一个极其轻量的虚拟机即可。和直接在系统上运行的原生程序相比,docker损失的性能十分微小,对于docker带来的各种便利,这点损失微不足道。
由于各种NAS系统的docker管理界面都不一样,所以本文会用命令行来演示。如果你搞懂命令行各个选项的意义之后,再使用图形界面是轻而易举。新手一般看到命令行会比较畏惧,但是当你熟悉命令之后,再加上finalshell这种ssh工具的加成,效率真的会比使用图形界面还要来得高。下面以linuxserver/qbittorrent这个镜像作为例子。
  由于默认的
镜像(image)源地址在国外,要把动辄几百MB的镜像文件pull下来,几十上百K的下载速度简直要命了。所以使用docker的第一件事情就是更改镜像源地址。在尝试过中科大、网易N多的源地址之后
我发现最快的是微软爸爸的地址
即使是冷门刚发布的镜像,下载速度也能维持1M+/s。至于怎么修改镜像源地址,自行根据自己系统搜索吧。
  docker存储镜像的仓库叫做
docker hub,我们可以在docker hub上面寻找需要的镜像,这些镜像的页面一般都包含了简单的使用说明。

dockerhub界面
我们也可以在命令行上查找镜像,使用命令docker search查找镜像

命令行的搜索结果按星标排序,比网页更加直观好用


在dockerhub直接搜索镜像名查看使用说明

镜像使用说明
在获取镜像之前,要查看该镜像是否包含你设备的架构。各种矿渣盒子的架构是arm64、armv8,而英特尔J1900、J3455就是x86-64


留意镜像是否支持你的设备
直接页面复制右上角的
docker pull 命令,就可以把符合你设备架构的镜像从仓库pull(拉)到本地

没有特别标明tag,docker pull会默认获取tag为latest(最新)的镜像


要使用特定的版本可在tag页面下寻找,再复制右上角命令即可
docker images 命令可以查看本地的已经获取的镜像信息,删除镜像用的是
docker rmi 镜像名

镜像的名字、tag(版本)、id创建时间,大小等信息
镜像的介绍页面一般都会有这么一长串的运行命令,先不要慌


了解每个选项的用途之后,看懂它十分的简单。
docker create 命令是用来创建
容器(
container)。我们之前下载的是镜像(
image)。
镜像生成容器,容器才是我们真正使用的程序。删除镜像的命令是
docker rm 容器名,如果容器正在运行需要添加-f,即
docker rm -f容器名
--name 指定容器的名字,随便写,qbittorrent直接缩写成qb
-e(environment) 环境变量,设置一些参数,我设置了
PUID为1000
GUID为100的用户li运行容器。同时还设置了时区、权限掩码,以及webui端口号。
有些变量的参数是有默认值的,并不需要设置,例如这里的umask。具体看每个镜像的页面说明。
权限设置还是挺重要的,不明白PUID和GUID可以看我之前介绍Linux权限文章。
-p(ports)端口号, docker默认是以
bridge网络模式运行的,-p选项完成了主机和容器的端口映射,前一个端口是宿主主机的端口,后一个是容器的端口,主机的端口可修改为你需要的端口,不要和现存的端口冲突即可。
-v(volumes) 数据卷,这是为了把容器所需要的数据保存到本机。即使容器被删除,数据也会保存下来。当你再生成新的容器时,依旧可以使用原来的数据。数据卷的设置和端口映射类似,前者为主机目录,后者为容器目录。这里的qbittorrent只写了一个downloads目录,如果要下载到其他目录的话,再添加数据卷即可,比如说-v /sharedfolders/movie:/movie,在qbtorrent的下载路径填写/movie,那么文件就会下载到/sharedfolders/movie。需要多少个下载目录,就添加多少个数据卷。
--restart 重启策略,
unless-stopped当你手动停止容器后,下次开机该容器就不会自动启动,
always总是自动启动。

创建名为qb容器
输入docker start qb就可以启动容器了,同理 docker stop 就是停止容器运行,docker restart则是重启容器

docker ps 显示正在运行的容器

用户li运行qbittorrent,权限设置正常
你会在其他镜像说明页面经常看见
docker run命令。这个命令会
直接创建并运行容器,如果本地没有对应的镜像,它会从docker hub下载该镜像,再创建容器。
-d 是在后台运行容器。
之前说过docker可以看成是一个轻量的虚拟机。容器本身运行了一个精简版的linux,然后在这个基础之上再运行的qbittorrent。输入
docker exec -it qb bash就进入了容器的系统。看下图红线部分,root后面主机名也变成了容器的id。

容器系统的目录结构
输入
ls命令查看目录。对于了解Linux的人来说,这个目录结构再熟悉不过了。这正是Linux的根目录。除此之外还多了config、downloads、movie 这3个目录,这是在创建容器时添加的目录。所以在qb输入的下载目录是/downloads,而不是本机的目录/sharedfolders/downloads,qb容器并没有/sharedfolders/downloads这个目录。
切换到movie目录,新建一个叫做file的文件,这时在/sharedfolders/movie下也生成了一个fie文件

movie和/sharedfolders/movie其实是同一个目录
Alpine Linux是一个只有5MB的Linux系统,docker推荐它来当作基础镜像。linuxserver/qbittorrent这个镜像是基于ubuntu,和其他基于Alpine的镜像相比大不少。因此我们在寻找镜像的时候,偏向使用基于Alpine的镜像。这点也可以在镜像的页面找到。

荒野无灯的qb基于Alpine只有84MB,而linuxserver的qb足足300MB
我们再来看jellyfin官方的镜像说明

jellyfin
这是不是和上面qb的设置相似呢?-v是--volume的缩写,这里添加了3个数据卷。环境变量-e 设置PUID和PGID变成了--user ,这是因为有的镜像没有设置PUID和PGID,所以需要--user(缩写是-u) 来指定运行用户; --net=host 使用docker的host网络模式运行容器,这里就不需要设置端口映射了,docker会直接使用主机的端口,但要注意避免端口冲突。jellyfin的默认端口是8096。--net=host 改成 -p 8096:8096也是一样可以运行的。
我们再看百度网盘下载工具的运行说明,它和qb的运行几乎一模一样,也是设置了环境变量、端口、数据卷这些参数。

当你看过这3个不同镜像的运行说明之后,会发现docker镜像的使用方法其实大同小异。几乎都是设置
环境变量、
端口以及
数据卷。也许你会问如果在群晖、qnap、unraid、omv这些系统又怎么设置呢?这些系统在命令行下的命令是一样的,这也是我推荐使用命令行的原因。你可以在这里上搜docker,那些教程在图形界面是不是也都是设置这几个参数呢
所以说搞懂原理之后可以做到触类旁通,图形界面下的设置也根本不在话下
码字不易,如果觉得本文对你有帮助,收藏的同时顺手点个赞,谢谢
文章的点赞数经常不到收藏的十分一
能帮助到更多的人是我写文章的初衷 有疑问的请留言,我会尽量回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则



绑定微信 + 关注公众号,第一时间获得消息通知!
:
新手玩家
:
介绍未填写

主题

帖子

积分7

图文推荐

  • 搭建私有云—华芸AS6404T NAS+华硕 AC68U体

    帮朋友搭建私有云—华芸AS6404T NAS+华硕 AC68U体

  • 分享蜗牛星际A\B\C\D款机箱和功能分别有

    历经一个月研究:蜗牛星际ABCD款机箱和功能分

  • 利用NAS建立DNS缓存服务器Pi-hole

    在家用环境中利用NAS建立DNS缓存服务器 1 前

  • 科普:什么是硬盘MTBF?那MTTF、MTTD、MTTR

    买固态硬盘,我们会比较关注颗粒寿命,机械硬盘虽

  • 群晖硬盘迁移到新群晖,插在另外一台群晖NA

    之前有一台蜗牛星际做的黑群晖系统nas,然后现在

  • 机械硬盘该怎么选?教你最全机械硬盘选购指

    机械硬盘该怎么选?教你最全机械硬盘选购指南

  • 万由HS-200S最简单的远程开机方法教程

    分享下我的nas使用技巧,以及最简单的远程开机

  • 家庭NAS+HTPC组建及注意事项(一)(内网穿

    原创篇一:家庭NAS+HTPC组建及注意事项(一)(内

  • NAS都有哪些品牌?带你了解几大NAS名牌介绍

    NAS都有哪些品牌?带你了解几大NAS名牌介绍 前

  • 不用U盘引导直装SSD!矿渣NAS安装黑群晖与

    教你怎么不用U盘引导直装SSD!矿渣NAS安装黑群晖

  • Hao4K影音app客户端下载