docker选择安装位置_NAS+Docker,新的解决方案
Docker 容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker 也为容器提供更强的业界的隔离兼容。[2]使用 docker 的 nas 用户几乎都遇到过性能不足
Docker 容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker 也为容器提供更强的业界的隔离兼容。[2]
使用 docker 的 nas 用户几乎都遇到过性能不足的情况,这时候服务器就卡住无法动弹,常见的情况就有:
- 视频转码
- bt 太多
- 内存分配冲突
一旦这种情况出现,就特别想要换一台不是那么坑的高性能机器。但是呢,更换机器的成本也不小,买机器得花钱吧,旧的机器得淘汰吧,旧机器得处理吧,如果跨平台,还得转移数据,还得调试配置。零零总总加起来,也是一堆麻烦事。
那其实有一种方法,可以不必更换高性能 NAS,那就是再加一个机器,专门跑 Docker 。
请不要认为我在搞笑,这个方法可行,并且比更换设备要好许多,原因如下:
- 首先,新增设备的存储问题不用担心。
使用 NAS 提供的 NFS 服务,就可以远程挂载存储空间,并且性能损耗也非常小。(具体测试结果已经丢了,有兴趣的可以自行测量) - 其次,新机器在 cpu、内存、ssd、平台上有非常多的选择。
无论是购买低价的高性能设备(比如入门级,已经疯狂涨价的 N1,CpuMark : 18478 Scores,ARM,2G内存,8G EMMC 存储,单网口,双USB,一个HDMI,从70元 涨到了120元),还是自组机器,都有不错的选择性。 - 不用处理旧机器,不用换平台,不用新配置。
- 耦合度小,这一点有些朋友深有体会。
有些朋友设备的耦合度超高,什么东西都往里面塞,一个 nas 炸了,所有的东西全部炸。有备份的恢复数据,没有备份的重新配置,玩上了 docker 还得重新下一遍并且还得重新配(没有心理阴影的人应该没有备份 docker 吧),挂载种子多的就...。总之,这些所有东西加起来,一周的时间说不定就过去了。
【教程部分】
教程共有三步,其中第三步的是在 docker 中挂载 NFS 并创建镜像,全 GUI (图形界面) 操作。
- 挂载存储使用 NFS 协议,首先在 NAS 上开启 NFS 服务。
NFS 是一个在本地挂载远程的协议,协议性能好,开销小。
我们将使用 NFS 挂载的方式让 Docker 能够访问到 NAS 中的文件夹
2. 然后在文件夹中开启 NFS 权限,注意装载路径,有些是 volume2/3/4 ,注意有用户权限的控制。
#(如果想要在docker之外挂载NFS,可以登录SSH,使用以下命令挂载)
mount -t nfs IP地址:/volume1/qbit(远程地址) /root/remote_dir(目标地址)
Portainer 是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境(Docker 主机或 Swarm 群集)。它由可在任何 Docker 引擎上运行的单个容器组成,旨在使部署更简单 。
简单来说,Portainer是一个 web页面,让你几乎不使用代码的方式管理 docker
假设 docker 已经按照完毕,还未安装的朋友可以点击下方相应平台进行安装。
- win安装docker
- macos安装docker
- linux安装docker
- 首先确认 docker 命令可用
2. 安装并运行 Portainer
# docker pull portainer #这一步可以省略,run会自动下载
docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /Users/lee/dev/docker_file/portainer/data:/data docker.io/portainer/portainer
(网络情况不好的朋友可以配置代理,或者在每天早上8-11点下载(此时网络情况较好))
a. 创建账号
b. 连接docker服务器。点击本地(因为docker服务器安装在本地)
c. 安装成功。界面如下
对于只想使用代码的朋友,大概解释一下思路:
1. 首先创建 volumes ,利用 nfs 挂载的方式创建
2. 创建 containers 的时候使用 volumes 中的映射过去就好
- 下载镜像,点击Images
现在以 transmission 的映像为例
a. 下载映像
b. 在下方点击映像,查看详细信息。
c. 在详细信息中寻找如下信息
在详细信息可以看到,有两个端口,51413与9001,存储空间有配置,下载,监视三个位置。其中,下载和监视可以使用nfs挂载远程,配置文件放在本地存储。(这样,性能主机和NAS完成了解耦,即使NAS炸掉,docker的配置文件都还在,重新映射一下下载和监视就可以继续使用)
2. 创建存储空间,点击Volumes,点击添加卷
a. 配置卷信息
(卷可以重复使用。即,一次配置,多个镜像都可以使用)
3. 部署镜像,点击Containers
点击添加
a. 基本配置
b. 配置卷
c. 选择网络
主流选项有bridge(桥接)与host(主机):
- 桥接方式通过内网以及端口转发进行,常见的问题有没有ipv6地址(需要复杂的配置)
- 主机模式将共享主机的所有网络条件(但要注意端口是否冲突)
由于tr需要下载做种,所以选择host模式方便使用,保留ipv6地址。
d. 完成安装
e. [可选] 使用 NAS 反代协议进行反代
利用反代,可以仅使用一个 IP 进行所有服务的访问。同时可以利用 https 加密 http 流量 ,无需再次配置新证书。
【如果这篇文章对你有用就点个赞吧,点赞又不要钱】
更多推荐
所有评论(0)