全网最详细介绍飞牛NAS(Fn OS)之Docker篇+部署兰空图床_飞牛docker
https://zhuanlan.zhihu.com/p/4803153585
前言:
很多新同学都开始使用NAS,因为大家都在推荐飞牛,那么很多不懂NAS的同学也开始使用飞牛(Fn OS)NAS,但在使用NAS的都是很多应用都要使用到Docker,哪docker又是什么?不管是飞牛还是群晖,或者绿联、极空间,就连软路由系统OpenWrt、爱快这些都有docker,那很多新同学就在问,这个docker到底是什么?它要怎么使用呢?
Docker 是一个开源的容器化平台,它可以让开发者将应用程序及其所有的依赖项(如库、配置文件等)打包成一个标准化的单元,这个单元被称为容器(Container)。
- 容器的概念
- 容器就像是一个轻量级的虚拟机,但它与虚拟机有很大的区别。容器共享宿主机(运行容器的物理机或虚拟机)的操作系统内核,而虚拟机是在宿主机的操作系统之上模拟出一个完整的操作系统环境。这使得容器在资源利用上更加高效,启动速度更快。例如,一个容器可以在几秒钟内启动,而一个虚拟机可能需要几分钟。
- 每个容器都有自己独立的文件系统、进程空间、网络接口等,就好像是在宿主机上隔离出了一个独立的小环境,用于运行特定的应用程序。以一个 Web 应用为例,你可以把 Web 服务器(如 Nginx)、后端应用程序
- (如用 Python 编写的 Flask 应用)和数据库(如 MySQL)分别打包成不同的容器,它们可以在同一台宿主机上独立运行,并且相互之间可以通过网络进行通信。
- Docker 的工作原理
- 镜像(Image):镜像是容器的基础,它是一个只读的模板,包含了运行一个容器所需的所有文件和配置信息。例如,你可以有一个 Ubuntu 操作系统的镜像,在这个镜像的基础上安装各种软件来构建出适合运行特定应用的镜像。镜像可以通过 Dockerfile(一个包含构建镜像指令的文本文件)来构建,也可以从 Docker Hub(Docker 官方的镜像仓库)等公共或私有仓库中获取。
- 容器(Container):容器是从镜像创建出来的运行实例。当你使用
docker run
命令时,Docker 会根据指定的镜像创建一个容器并启动它。容器在运行过程中是可以被修改的(例如,在容器内创建新的文件、修改配置等),但是这些修改不会影响到原始的镜像。如果需要保存这些修改,可以将容器提交为一个新的镜像。 - 仓库(Repository):仓库是用于存储和分发镜像的地方。Docker Hub 是最著名的公共仓库,它包含了大量的官方和用户贡献的镜像,涵盖了各种操作系统、数据库、Web 服务器等应用。企业也可以建立自己的私有仓库来存储内部开发和使用的镜像,以保证数据安全和镜像的可控性。
- Docker 的应用场景
- 软件开发与测试:在软件开发过程中,不同的开发人员可能使用不同的操作系统和开发环境。使用 Docker 可以将应用程序和其依赖的环境打包成容器,这样无论在哪个开发环境中,只要安装了 Docker,就可以确保应用程序能够以相同的方式运行。在测试阶段,测试人员也可以快速地拉取包含应用程序和测试环境的容器,进行功能测试、性能测试等各种测试。
- 微服务架构:在微服务架构中,应用程序被分解为多个小型的、独立的服务。每个微服务可以被打包成一个或多个容器,这些容器可以独立地开发、部署和扩展。例如,一个电商应用可以包括用户服务、产品服务、订单服务等微服务,每个微服务都可以在自己的容器中运行,并且可以通过网络接口(如 RESTful API)相互通信。
- 持续集成 / 持续交付(CI/CD):Docker 是 CI/CD 管道中的重要工具。开发人员可以将代码提交到代码仓库,然后通过自动化的构建和测试流程,将代码打包成容器并进行测试。如果测试通过,容器可以被部署到生产环境中。这样可以大大提高软件的交付效率和质量,减少因为环境差异导致的问题。
正文:飞牛NSA的docker菜单介绍
一、设置docker存储位置
在我们安装好飞牛NAS之后会,在应用中心里面有着很多带有docker图标的应用程序
像很多新手飞牛用户使用的迅雷nas版、Alist小雅等应用程序都是带有docker图标的,这就表示这些应用是使用docker容器在运行,而在我们安装这些应用之前,我们需要打开Docker程序设置他的安装位置,不然就容易出现错误
出现这种情况的时候不要着急,我们先打开Docker
在这个界面里面可以看到我们容器的运行状况,docker使用了多少的CPU资源、内存用了多少、网络如何,开启或者关闭docker服务,是否要开机自启等设置。设置完之后再回到应用中心安装带有docker图标的应用就不会出错了;
二、如何使用Docker部署项目
使用飞牛NAS 部署docker项目有三种方式,分别是:docker图像UI手动设置、docker-compose部署和ssh的docker命令直接拉取部署。
今天我们在这里只讲解前面两种方式docker图像UI和docker-compose
;
这ssh命令拉取和compose差不多,只是多了几个命令,因为图形UI上手简单,所以我们只讲解简单好上手的方式;
1、飞牛NAS的docker图像UI菜单介绍
概览:
我们在上面有讲解过,概览可以查看整个docker的全部状态,和开启或关闭docker
容器:
我们部署好的全部项目都会在容器这个界面中显示,如果我们需要修改容器设置的话也是在这个界面中,比如我想要修改迅雷的下载目录
在docker里面多少情况都是不支持中文,所以我们在这里看迅雷的容器名称是“xunlei
”
而在容器概况概览里面能看到更加详细的信息,像这个容器使用的端口号有哪些,现在都存储映射路径,网络分类,容器运行后使用的命令功能,还有使用的环境变量,每个容器都有属于自己的环境变量,一般情况下这个项目的官网都会公开这些环境变量以及修改方式;
下面我们就开始来修改一下迅雷的下载目录,我们在关闭了迅雷容器之后找到存储设置
容器的路径映射我在文章最后的常用变量中有讲解
如果要修改目录映射后的名称就要在这里修改相应的设置,环境变量的作用是告诉机器AA=11
在容器里面修改完目录后点击保存,然后要飞牛设置-应用-迅雷-添加目录(要和容量里面的一样)再点击应用中心启动迅雷,就设置完成了
Compose:
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用服务,使得可以轻松地在一个主机上创建、启动和管理多个相关联的容器。
- 基本概念
- 服务(Service):在 Docker Compose 中,服务是一个抽象的概念,它代表了一个容器化的应用程序或应用程序的一个组件。例如,一个 Web 应用可能包含一个 Web 服务器服务(如 Nginx)、一个后端应用服务(如用 Python 编写的 Flask 应用)和一个数据库服务(如 MySQL)。每个服务都可以在 Docker Compose 文件中进行独立的配置,包括容器的镜像、环境变量、端口映射、卷挂载等参数。
- 项目(Project):一个由 Docker Compose 管理的一组相关服务构成一个项目。当你使用 Docker Compose 启动一个应用时,所有相关的服务会一起被启动,并且它们之间可以根据配置进行交互。例如,一个简单的博客系统项目可能包括一个 Web 服务器服务、一个博客后端服务和一个数据库服务。
- 配置文件(docker - compose.yml)
- 版本(Version):配置文件的开头通常需要指定版本号,如
version: \'3\'
(目前常用的版本是 3)。不同的版本号有不同的语法和功能支持。版本号决定了文件中可以使用的配置选项和语法规则。 - 服务配置(Service Configuration)
:- 镜像(Image):用于指定每个服务所基于的 Docker