Docker小白使用入门
——以飞牛nas搭建moviepilot-v2为例
本文旨在帮助从未用过docker的小白,快速了解docker相关设置及含义,通过搭建moviepilot-v2来帮助小白度过新手迷茫时期。
配置docker容器有三种方式:
1.直接通过SSH拉取构建镜像。
2.通过相应系统的docker可视化管理面板,手动拉取、运行、配置镜像。(本文面向飞牛用户)
3.通过Compose配置文件构建容器。
本文通过对比方法2.和3.来让小白理解相关步骤的含义,最后对比1.的命令彻底理解docker容器是啥玩意。
Compose比手动拉取镜像更方便,而且能一次配置多个容器服务,缺点是需要提前设置好配置文件,现在哔哩哔哩有好多大佬分享Compose配置文件合集。
本文所用moviepilot服务官方wiki:https://wiki.movie-pilot.org/
首先我们来看手动设置容器步骤:
1.拉取镜像
2.运行镜像
3.进行容器命名或是否开机自启
4.映射端口和目录:这里重点解释一下,容器是封闭的一个系统,构建的镜像已经设置好了内部的服务端口和目录,所以右边的容器端口和目录是不能改变的。你能改变和自定义的是左边的访问端口及映射到你nas的目录(因为容器是封闭的,你不能直接访问内部文件,所以得把你需要的相应文件或目录映射出来,方便手动更改,不映射目录不影响容器运行,但是你就没办法更改相应文件了)。
5.环境变量:不同镜像需要不同的环境变量,这个在镜像的官方wiki会有详细说明,一般镜像默认就好,运行起来后有些设置可以在面板上改。
功能:一般默认,最高权限执行相当于root。
6.网络一般就host和bridge两类,host是指直接使用设备网络。bridge容器在单独子网下,相当于加了一层nat。飞牛容器自己加的网络子网有点多。。。。。
7.之后就可以最后检查配置运行容器了。
8.容器运行后也可以查看运行日志,或者到详情查看容器相关设置,需要注意的是,容器设置只能容器停止后更改,然后再次运行容器。
然后你就可以通过http://你的ip:你设置的端口/ 来访问你搭建的服务了。
以上就是手动运行容器镜像的步骤,步骤清晰明了,出了问题你只能重新从来一遍,但是用Compose配置好后只需点一下鼠标就行。
下面我们来看Compose的使用方法,以moviepilot-v2为例:
1.在你准备好放moviepilot的地方新建moviepilot文件夹,在其中建好core和config文件夹,并准备好你媒体库和这两个文件夹的原始路径备用。
我的媒体库:/vol2/1000/Media
core:/vol2/1000/Worker/moviepilot/core
config:/vol2/1000/Worker/moviepilot/config
config
2.然后去docker的compose创建配置文件并运行,名称moviepilot,路径就选择你一开始新建的moviepilot文件夹,然后粘贴你的配置文件。
接下来我们就一起学习一下官方给的配置文件,以及你需要怎么更改。上边是官方的,下边是我修改好的。官方配置文件中#后是我给的注释,大家可以对比一下。
version: '3.3'
services:
moviepilot:
stdin_open: true
tty: true
container_name: moviepilot-v2
hostname: moviepilot-v2
networks:
- moviepilot
ports:#访问端口,相当于手动第四步
- target: 3000
published: 3000
protocol: tcp
volumes:# 映射目录,“:”前是你的目录,后是容器目录,我们需要替换“:”前的目录为你自己的原始路径。相当于手动第四步。
- '/media:/media' # 媒体库目录,必须映射
- '/moviepilot-v2/config:/config' # 设置文件目录
- '/moviepilot-v2/core:/moviepilot/.cache/ms-playwright' # 浏览器内核
- '/var/run/docker.sock:/var/run/docker.sock:ro' # 因为国内网络环境原因,这个可以不映射,不然重启容器可能失败
environment: # 环境变量,相当于手动第五步
- 'NGINX_PORT=3000'
- 'PORT=3001'
- 'PUID=0'
- 'PGID=0'
- 'UMASK=000'
- 'TZ=Asia/Shanghai'# 时区
- 'AUTH_SITE=iyuu' # 认证站点:没有认证站点使用和添加不了pt站的功能,但是能用刮削
- 'IYUU_SIGN=xxxx'
- 'SUPERUSER=admin' # 管理员账号名,这个必须改成你想要的账号名,因为后期无法更改。
# - 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串'
restart: always
image: jxxghp/moviepilot-v2:latest
networks:
moviepilot:
name: moviepilot
version: '3.3'
services:
moviepilot:
stdin_open: true
tty: true
container_name: moviepilot-v2
hostname: moviepilot-v2
networks:
- moviepilot
ports:
- target: 3000
published: 3000
protocol: tcp
volumes:
- '/vol2/1000/Media:/media'
- '/vol2/1000/Worker/moviepilot/config :/config'
- '/vol2/1000/Worker/moviepilot/core:/moviepilot/.cache/ms-playwright'
environment:
- 'NGINX_PORT=3000'
- 'PORT=3001'
- 'PUID=0'
- 'PGID=0'
- 'UMASK=000'
- 'TZ=Asia/Shanghai'
- 'PROXY_HOST=http://10.0.0.2:7890' # 代理设置,比如家里有旁路由科学上网,期待飞牛出虚拟机。
- 'MOVIEPILOT_AUTO_UPDATE=true' # 启用重启容器时更新
- 'AUTH_SITE=rousi' # 更改认证站点为rousi,因为我有rousi,可以去官方wiki看支持哪些站点。
- 'ROUSI_UID=xxxx'
- 'ROUSI_PASSKEY=xxxx'
- 'SUPERUSER=htnas' # 修改管理员名字,这个现在不改以后就改不了了。
# - 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串'
restart: always
image: jxxghp/moviepilot-v2:latest
networks:
moviepilot:
name: moviepilot
将上边compose配置文件修改好粘贴到第二步启动就可以了,其实就是把手动配置的步骤提前在配置文件内设置好。
3.然后等构建完成
4.然后到容器运行界面查看运行日志,第一次启动因为要下载浏览为内核等文件,网络不好会非常慢,耐心等待,日志中会藏着第一次登陆的密码,如果嫌弃日志查看麻烦,也可以到你映射出的config文件夹当中config/logs文件内查看。我的初始管理员用户名和密码就是htnas和O1LAVGPhbDRQxI9CHAn3VQ
然后访问http://你的ip:3000/就可以访问了。
记得登陆后第一步就修改个人密码。
到了这儿你就应该学会怎么使用docker了,moviepilot也搭建好了。无非就是映射好端口和路径,配置好环境变量就好了,而需要的这些都能在相应容器镜像的官方wiki找到。那么现在你自来对比一下官方moviepilot直接ssh安装的代码,是不是就很好理解了呢:
docker run -itd \
--name moviepilot-v2 \
--hostname moviepilot-v2 \
-p 3000:3000 \ # -p是映射外部端口3000到容器内3000端口
-v /media:/media \ # -v是映射文件夹 “:”前是你的目录,后边是容器目录
-v /moviepilot-v2/config:/config \
-v /moviepilot-v2/core:/moviepilot/.cache/ms-playwright \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e 'NGINX_PORT=3000' \ # -e是配置环境变量
-e 'PORT=3001' \
-e 'PUID=0' \
-e 'PGID=0' \
-e 'UMASK=000' \
-e 'TZ=Asia/Shanghai' \
-e 'AUTH_SITE=iyuu' \
-e 'IYUU_SIGN=xxxx' \
-e 'SUPERUSER=admin' \
# -e 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串' \
--restart always \
jxxghp/moviepilot-v2:latest
相信你看到这儿就能举一反三了,别的docker镜像使用起来也能得心应手了。
另外因为本人不使用moviepilot,所以软件内部设置可以参考http://nas.zwbcc.cn:8090/archives/1711674204030这篇文章。我更建议小白们正经电影使用飞牛影视,小姐姐刮削可用emby、plex和jellyfin其中一个加metatube插件解决。
另外,读者们评论留言一下证明给你们来过哦,你们的评论是我继续更贴的动力emmmmm