<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>夜猫子的博客| 夜猫子—曾六 | 动态</title>
	<link>https://www.liuzi233.cn/%e6%88%90%e5%91%98/liuzi/activity/</link>
	<atom:link href="https://www.liuzi233.cn/%e6%88%90%e5%91%98/liuzi/activity/feed/" rel="self" type="application/rss+xml" />
	<description>夜猫子—曾六的动态信息。</description>
	<lastBuildDate>Wed, 14 Oct 2026 08:06:46 +0800</lastBuildDate>
	<generator>https://buddypress.org/?v=</generator>
	<language>zh-Hans</language>
	<ttl>30</ttl>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>2</sy:updateFrequency>
	
						<item>
				<guid isPermaLink="false">212c4f14e1348240f52237b647ff0f6e</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=653</link>
				<pubDate>Fri, 15 Nov 2024 14:40:34 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=653" rel="nofollow ugc">使用`Docker-Compose`部署`MySQL`和`PHPmyadmin</a></strong><a href="https://ymz666.top/?p=653" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2024/11/images-2.png" /></a> 1. 安装 Docker 和 Docker Compose（已经安装的请跳过）   首先，根据你的操作系统，安装Docker。例如在 Ubuntu 系统中，可以使用以下命令：   安装Docker Compose。通常可以从官方 GitHub 仓库下载对应版本：   s<a href="https://ymz666.top/?p=653" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">16a2cb0e3c4c72cbfa55d84ac3bb2652</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=648</link>
				<pubDate>Sun, 03 Nov 2024 17:33:07 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=648" rel="nofollow ugc">全网最详细介绍飞牛NAS（Fn OS）之Docker篇+部署兰空图床（lsky-pro）</a></strong><a href="https://ymz666.top/?p=648" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2024/11/202408311725073426478504.png" /></a> 前言： 很多新同学都开始使用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 &#8211; compose.yml）   版本（Version）：配置文件的开头通常需要指定版本号，如version: &#039;3&#039;（目前常用的版本是 3）。不同的版本号有不同的语法和功能支持。版本号决定了文件中可以使用的配置选项和语法规则。   服务配置（Service Configuration） ：  镜像（Image）：用于指定每个服务所基于的 Docker 镜像。例如，image: nginx表示该服务使用官方的 Nginx 镜像。也可以指定自己构建的镜像，如image: my &#8211; private &#8211; repo/my &#8211; app &#8211; image:latest。 容器名称（Container Name）：可以通过container_name选项为每个容器指定名称。不过如果不指定，Docker Compose 会自动为容器生成一个名称。例如，container_name: my &#8211; nginx &#8211; container。 端口映射（Port Mapping）：使用ports选项来配置端口映射，格式与docker run命令中的端口映射类似。例如，ports: &#8211; &#8220;8080:80&#8243;表示将容器内的 80 端口映射到宿主机的 8080 端口。 环境变量（Environment Variables）：通过environment选项来设置服务的环境变量。可以是简单的键值对形式，如environment: &#8211; MYSQL_ROOT_PASSWORD = 123456，也可以从外部文件中加载环境变量。 卷挂载（Volume Mounting）：使用volumes选项来挂载卷。可以是将宿主机目录挂载到容器内，或者使用命名卷（Named Volume）。例如，volumes: -./data:/app/data表示将当前目录下的data目录挂载到容器内的/app/data目录。 网络（Networks）：可以通过networks选项来配置服务所属的网络。例如，创建一个自定义网络networks: &#8211; my &#8211; app &#8211; network，然后将多个服务添加到这个网络中，使得这些服务可以在这个网络内部相互通信。      常用命令  docker &#8211; compose up：此命令用于启动整个应用，它会根据docker &#8211; compose.yml文件中的配置创建和启动所有服务的容器。如果容器不存在，会先根据镜像创建容器。如果在配置文件中有更新，docker &#8211; compose up可以自动重建和重新启动相关的容器。可以使用-d选项（docker &#8211; compose up -d）来以后台模式启动服务，这样容器会在后台运行，就像使用docker run -d命令一样。 docker &#8211; compose down：用于停止和删除由docker &#8211; compose启动的所有容器、网络和卷（默认情况下，命名卷不会被删除，除非使用-v选项）。这是一个清理应用的命令，在重新部署或者不再需要应用的时候使用。 docker &#8211; compose ps：类似于docker ps，但它是用于查看由docker &#8211; compose启动的容器的状态。它会列出每个容器的名称、状态、端口映射等信息，方便了解应用中各个容器的运行情况。 docker &#8211; compose logs：用于查看所有服务容器的日志信息。可以通过服务名称来筛选特定服务的日志，例如docker &#8211; compose logs -f my &#8211; service（-f选项用于实时跟踪日志，就像tail &#8211; f命令一样），这样可以方便地调试应用，查看各个容器内部的运行情况。     本地镜像： ​           我们现在都所有镜像都会在这里，在这里我们可以安装容器，删除镜像，具体如何安装容器，下面我们会案例演示 镜像仓库： ​            飞牛的镜像仓库是飞牛官方镜像docker官方的镜像仓库的，我们也可以添加自己自建的仓库，或者添加其他第三方仓库；在这里我们不过多讲解，有兴趣的我们下次可以聊聊如何自建docker镜像仓库 网络模式概述： ​       模式概述  Docker 提供了多种网络模式，用于容器之间以及容器与外部网络之间的通信。这些网络模式包括桥接网络（bridge）、主机网络（host）、无网络（none）和容器网络（container）。 桥接网络（bridge）  这是 Docker 默认的网络模式。在这种模式下，Docker 会创建一个虚拟的以太网桥（类似于软件交换机），将容器连接到这个桥上。每个容器会分配一个在宿主机上唯一的 IP 地址，这些 IP 地址通常是在一个私有子网中，例如 172.17.0.0/16（具体网段可能因 Docker 配置而不同）。容器可以通过这个 IP 地址相互通信，也可以通过宿主机的 IP 地址与外部网络通信。 例如，当启动两个容器时，它们会被分配类似 172.17.0.2 和 172.17.0.3 的 IP 地址，就像它们连接在同一个局域网中的两台独立的计算机一样。容器内的应用程序可以通过这些 IP 地址进行通信，如一个容器内的 Web 服务可以通过另一个容器的 IP 地址访问其提供的 API 服务。  主机网络（host）  在主机网络模式下，容器直接使用宿主机的网络栈，而不是拥有自己独立的网络。这意味着容器和宿主机共享 IP 地址和端口，容器内的服务所监听的端口直接就是宿主机的端口。 例如，如果在一个容器内启动一个监听 80 端口的 Web 服务，那么在主机网络模式下，这个服务实际上是在宿主机的 80 端口上监听。这种模式的优点是网络性能高，因为没有中间的网络转换层；缺点是容器之间的网络隔离性较差，而且端口冲突的可能性较大。（不熟悉的不建议使用）  无网络（none）  这种模式下的容器没有网络连接，就好像它是一个独立于网络之外的封闭环境。容器内部的应用程序无法通过网络与外界通信，也无法与其他容器通信。这种模式适用于一些特殊的应用场景，比如只需要在容器内部进行数据处理，不需要网络交互的情况。  容器网络（container）  容器网络模式允许一个容器与另一个指定的容器共享网络命名空间。这意味着它们共享相同的网络接口、IP 地址和端口范围等。例如，你可以让一个辅助容器（如日志收集容器）和主应用容器共享网络，这样辅助容器就可以直接访问主应用容器的网络资源，方便收集日志等操作。   自定义网络  创建自定义网络：可以使用docker network create命令创建自定义网络。例如，docker network create my &#8211; network会创建一个名为my &#8211; network的网络。这个网络可以是桥接网络类型，也可以是其他支持的网络类型，具体取决于参数设置。 连接容器到自定义网络：在创建容器时，可以使用&#8211;network选项将容器连接到自定义网络。例如，docker run &#8211; &#8211; network my &#8211; network my &#8211; container &#8211; image会将基于my &#8211; container &#8211; image的容器连接到my &#8211; network网络中。连接到同一个自定义网络中的容器可以通过容器名称或者容器别名（可以在连接网络时设置）进行通信，而不需要使用 IP 地址，这使得容器之间的通信更加方便和灵活。 网络隔离与安全：自定义网络可以提供更好的网络隔离。不同的自定义网络之间的容器默认是不能互相通信的，只有在进行适当的网络配置（如设置网络连接规则）后才能通信。这有助于提高容器应用的安全性，例如，可以将数据库容器所在的网络与 Web 服务器容器所在的网络进行隔离，只允许通过特定的端口和协议进行通信，以防止未经授权的访问。  网络通信原理  当容器通过桥接网络通信时，Docker 会使用网络地址转换（NAT）技术，将容器内部的私有 IP 地址转换为宿主机的公共 IP 地址，从而实现与外部网络的通信。对于容器之间的通信，数据会通过虚拟的以太网桥进行转发。 在主机网络模式下，容器直接使用宿主机的物理网络接口进行通信，没有额外的网络转换层。而在容器网络模式下，共享网络命名空间的容器之间的通信就像在同一个操作系统进程之间通信一样，因为它们共享相同的网络资源。   2、docker图像UI部署案例 我们这次部署的是一个图床（Lsky-Pro），可以让你的图片用链接的方式出现，可以使用在你的博客上面，这个图床还需要使用数据库来存储数据所以我们这里就要部署两个容器 拉取MySQL镜像：   MySQL容器设置： ​                             下载好镜像后，我们先打开文件管理器，创建一个MySQL文件夹来存储MySQL文件配置，然后在MySQL文件夹里面在新建log和mysql这两个文件夹，log是用来保存容器日志的，MySQL是用来存储配置文件的，这个文件夹的保存位置看大家的习惯  建好文件夹后我们回到docker的本地镜像里找到我们下载好的MySQL镜像点击运行       MYSQL_ROOT_PASSWORD=root 这个环境变量的意思是MySQL的root账号密码使用root作为密码，省去了我们后期还要使用ssh命令来修改root的密码，最后面点击下一步，检查设置没问题后点击创建开始运行MySQL容器，这样你就成功的创建了一个能够运行的容器  拉取phpmyadmin镜像： ​              因为我们已经有MySQL数据库，但是MySQL只能使用命令来使用它，这对于新手来说很麻烦，所以我们就在创建一个容器，使用图像界面来管理我们的数据库； 和上面一样，我们想到镜像仓库拉取phpmyadmin镜像  phpmyadmin容器设置：     phpmyadmin环境变量，看情况添加 PMA_ARBITRARY -设置为1时，将允许连接到任意服务器 PMA_HOST -定义MySQL服务器的地址/主机名 PMA_VERBOSE -定义MySQL服务器的详细名称 PMA_PORT -定义MySQL服务器的端口 PMA_HOSTS -定义逗号分隔的MySQL服务器的地址/主机名列表 PMA_VERBOSES -定义以逗号分隔的MySQL服务器详细名称列表 PMA_PORTS -定义以逗号分隔的MySQL服务器端口列表 PMA_USER和PMA_PASSWORD-定义用于配置身份验证方法的用户名 PMA_ABSOLUTE_URI -定义面向用户的URI HIDE_PHP_VERSION-如果定义，则将隐藏php版本（expose_php = Off）。设置为任何值（例如HIDE_PHP_VERSION = true）。 UPLOAD_LIMIT -如果设置，将覆盖apache和php-fpm的默认值（默认值为2048 kb） PMA_CONFIG_BASE64 -如果设置，将使用变量的base64解码内容覆盖默认的config.inc.php PMA_USER_CONFIG_BASE64 -如果设置，将使用变量的base64解码内容覆盖默认的config.user.inc.php  下面我们在游览器上面输入飞牛ip:端口进入phpmyadmin的图像界面，我这里设置 的端口号是5623，飞牛的ip地址是192.168.100.53 哪我都phpmyadmin的地址就是http://192.168.100.53:5623（注意 “&#8221; : ” 是英文的：）  这里使用的账号密码是MySQL数据库的root账号和密码 我们要创建一个图床使用的数据库     拉取Lsky-pro镜像：  Lsky-pro容器设置： 我们要创建一个文件来保存图床的配置文件  ​       到这里我们这三个容器都成功运行了，下面我们要开始设置lsky-pro 游览器新建一个窗口输入飞牛ip地址+lsky端口号我这里的是：192.168.100.53:8289  这里基本不会出现问题，直接点击下一步  没问题就可以点击安装了，安装成功后会出现下面界面  后面的使用教程可以自行百度，要是点击高，可以单独出一个文章 3、docker-compose部署案例 这里我们跳过创建目录的过程，直接讲解docker-compose部署lsky-pro   按要求来改yml文件，都写好了批注 version: &#039;3&#039; services:     lsky-pro:         container_name: lsky-pro         image: dko0/lsky-pro         restart: always         volumes:             &#8211; ./data/html:/var/www/html  #映射到本地         ports:             &#8211; 7791:80         environment:             &#8211; MYSQL_HOST=mysql             &#8211; MYSQL_DATABASE=lsky-pro             &#8211; MYSQL_USER=lsky-pro             &#8211; MYSQL_PASSWORD=lsky-pro      mysql:         image: mysql:8.0         container_name: lsky-pro-db         restart: always         environment:           &#8211; MYSQL_DATABASE=lsky-pro           &#8211; MYSQL_USER=lsky-pro           &#8211; MYSQL_PASSWORD=lsky-pro           &#8211; MYSQL_ROOT_PASSWORD=lsky-pro         volumes:           &#8211; ./data/db:/var/lib/mysql 以下是对这个docker &#8211; compose.yml文件的批注： 整体结构和功能  这个docker &#8211; compose.yml文件定义了一个包含两个服务（lsky &#8211; pro和mysql）的 Docker Compose 项目，用于部署 lsky &#8211; Pro 图床应用及其依赖的 MySQL 数据库。  lsky &#8211; pro 服务  container_name: lsky &#8211; pro  为 lsky &#8211; Pro 服务的容器指定了一个易于识别的名称，方便后续对该容器进行操作，比如使用docker stop/start等命令时可以直接使用这个名称。  image: dko0/lsky &#8211; pro  指定了 lsky &#8211; Pro 服务所使用的 Docker 镜像。这里使用了自定义的镜像dko0/lsky &#8211; pro，假设这个镜像已经构建好并且包含了运行 lsky &#8211; Pro 应用所需的所有软件和配置。  restart: always  配置容器在退出时总是自动重启。这对于保证服务的持续可用性很有用，例如在服务器重启或者容器意外停止的情况下，lsky &#8211; Pro 服务能够自动恢复运行。  volumes部分  -./data/html:/var/www/html：将本地目录./data/html挂载到容器内的/var/www/html目录。这样做的好处是可以方便地在本地修改和更新 lsky &#8211; Pro 的代码或配置文件（如果有需要），并且数据可以持久化存储在本地，不会因为容器的删除或重新创建而丢失。  ports部分  &#8211; 7791:80：将容器内的 80 端口（通常是 lsky &#8211; Pro 应用监听的端口）映射到宿主机的 7791 端口。这意味着可以通过访问宿主机的 7791 端口来访问 lsky &#8211; Pro 应用，实现了容器内服务与外部网络的通信。  environment部分  &#8211; MYSQL_HOST=mysql：设置 lsky &#8211; Pro 应用连接的 MySQL 数据库主机名。这里使用了mysql，是因为在 Docker Compose 网络中，服务之间可以通过服务名称相互访问，另一个服务mysql的容器名称就是lsky &#8211; pro &#8211; db，这样配置使得 lsky &#8211; Pro 能够找到对应的数据库服务。 &#8211; MYSQL_DATABASE=lsky &#8211; pro、- MYSQL_USER=lsky &#8211; pro、- MYSQL_PASSWORD=lsky &#8211; pro：分别指定了 lsky &#8211; Pro 应用连接 MySQL 数据库所使用的数据库名、用户名和密码，确保了应用与数据库之间的认证和数据访问的正确性。   mysql 服务  image: mysql:8.0  使用官方的 MySQL 8.0 版本镜像来创建数据库容器，保证了数据库的稳定性和功能完整性。  container_name: lsky-pro-db  为 MySQL 容器指定了名称，方便管理。  restart: always  与 lsky &#8211; Pro 服务容器一样，保证 MySQL 数据库在遇到问题时能够自动重启，维持服务的可用性。  environment部分  &#8211; MYSQL_DATABASE=lsky &#8211; pro、- MYSQL_USER=lsky &#8211; pro、- MYSQL_PASSWORD=lsky &#8211; pro、- MYSQL_ROOT_PASSWORD=lsky &#8211; pro：配置了 MySQL 数据库的相关参数，包括创建的数据库名、普通用户及其密码，以及 root 用户的密码。这些环境变量用于初始化 MySQL 数据库的设置，确保安全性和应用的正确连接。  volumes部分  -./data/db:/var/lib/mysql：将本地目录./data/db挂载到容器内的/var/lib/mysql目录，用于持久化存储 MySQL 的数据文件。这样即使容器被删除或重新创建，数据库中的数据仍然可以保留。   三、docker常用变量和容器常用环境变量 1、常用变量 1-1、Dockerfile中的变量  FROM  说明：用于指定基础镜像，这是构建新镜像的起点。所有的 Docker 镜像都是从一个基础镜像构建而来的。例如，FROM ubuntu:latest表示新构建的镜像将基于最新版本的 Ubuntu 操作系统镜像。 用途：通过选择合适的基础镜像，可以包含特定操作系统的环境和软件包，减少构建镜像的工作量。不同的应用程序可能需要不同的基础镜像，如基于 CentOS 的镜像用于企业级应用，基于 Alpine 的镜像用于构建小型、轻量级的容器。  RUN  说明：用于在镜像构建过程中执行命令。这些命令可以是安装软件包、配置系统环境等操作。例如，RUN apt -y update &amp;&amp; apt -y install nginx会在构建镜像时更新软件包列表并安装 Nginx 服务器。 用途：在构建镜像阶段安装和配置应用程序及其依赖项。可以执行各种 shell 命令来设置镜像内部的环境，如安装数据库服务器（如RUN yum -y install mariadb -server用于在基于 CentOS 的镜像中安装 MariaDB）、编译源代码等操作。  CMD  说明：用于指定容器启动时要执行的默认命令。例如，CMD [&#8220;nginx&#8221;, &#8220;-g&#8221;, &#8220;daemon off;&#8221;]表示当容器启动时，将执行 Nginx 服务器，并以前台模式运行（daemon off;是 Nginx 的一个参数，用于让 Nginx 在前台运行，这样容器才能保持运行状态）。 用途：定义容器的主要运行任务。与RUN不同的是，CMD的命令是在容器启动时执行的，而RUN是在镜像构建阶段执行的。一个容器只能有一个CMD指令，如果在docker run命令行中指定了其他命令，那么会覆盖CMD中的命令。  ENTRYPOINT  说明：类似于CMD，但它让容器以应用程序或者服务的形式运行。ENTRYPOINT和CMD可以一起使用，CMD中的参数会作为ENTRYPOINT命令的参数。例如，ENTRYPOINT [&#8220;python&#8221;, &#8220;app.py&#8221;]表示容器启动时将运行app.py这个 Python 应用程序。 用途：设置容器启动的主程序，使得容器像一个可执行的程序一样运行。这种方式对于需要传递参数的应用程序很有用，比如在启动一个带有参数的数据库容器时，可以在ENTRYPOINT指定数据库服务器启动命令，在CMD中指定配置文件等参数。  EXPOSE  说明：用于声明容器运行时监听的端口。例如，EXPOSE 80表示容器内的应用程序会监听 80 端口，但这并不意味着宿主机的 80 端口就会自动映射到容器的 80 端口，还需要在docker run命令中使用-p或-P参数进行端口映射。 用途：告知外界容器内的应用程序所使用的端口，方便在运行容器时进行正确的端口映射，从而使外部可以访问容器内的服务。例如，对于一个 Web 应用容器，通过EXPOSE声明其 Web 服务的端口，然后在部署时通过端口映射让外部用户可以通过浏览器访问该 Web 应用。  ENV  说明：用于设置环境变量。例如，ENV MYSQL_ROOT_PASSWORD=123456可以在镜像构建过程和容器运行时设置 MySQL 的根密码环境变量。 用途：方便在容器内部的应用程序读取配置信息，也可以用于在构建过程中传递参数。许多应用程序通过读取环境变量来获取配置信息，如数据库连接字符串、日志级别等。通过ENV设置这些变量可以让应用程序在不同的环境（如开发、测试、生产）中使用不同的配置。  VOLUME  说明：用于创建挂载点，将容器内的目录挂载到宿主机或者其他存储设备上。例如，VOLUME [&#8220;/data&#8221;]会在容器内创建一个/data目录，这个目录可以被挂载到宿主机上的某个目录，方便数据的持久化存储和共享。 用途：实现数据的持久化和共享。对于数据库容器，通过VOLUME将数据库的数据目录挂载到宿主机上，即使容器被删除，数据仍然可以保留。同时，也可以用于在多个容器之间共享数据，比如一个存储配置文件的容器可以通过VOLUME将配置文件目录共享给其他容器。  WORKDIR  说明：用于设置容器内的工作目录。例如，WORKDIR /app表示容器内后续的命令（如RUN、CMD等指令中的命令）将默认在/app目录下执行。 用途：为容器内的操作提供一个统一的工作目录，方便管理文件和执行命令。比如在构建一个 Web 应用容器时，将WORKDIR设置为 Web 应用的代码目录，这样在安装依赖项、运行应用程序等操作时就可以在这个目录下进行。   1-2、docker run命令中的变量（部分）   -p或-P（端口映射）  说明：-p用于指定宿主机端口和容器端口的映射关系，格式为-p [宿主机端口]:[容器端口]。例如，-p 8080:80表示将宿主机的 8080 端口映射到容器的 80 端口，这样通过访问宿主机的 8080 端口就可以访问容器内监听 80 端口的服务。-P则是随机将容器内暴露的端口（通过EXPOSE声明）映射到宿主机的高端口。 用途：实现容器内服务与外部网络的通信。这是在运行容器时非常重要的参数，用于将容器内运行的 Web 服务器、数据库服务器等服务的端口暴露给外部网络，使得外部用户或其他服务可以访问容器内的服务。    -v（卷挂载）  说明：用于将宿主机的目录或文件挂载到容器内的目录，格式为-v [宿主机路径]:[容器内路径]。例如，-v /host/data:/container/data表示将宿主机的/host/data目录挂载到容器内的/container/data目录，这样容器内的应用程序就可以访问和操作宿主机上的文件，同时也可以实现数据的持久化存储。 用途：和VOLUME指令配合，用于数据的持久化和共享。在运行容器时，可以将重要的数据目录（如数据库数据目录、应用程序配置文件目录）挂载到宿主机上，以防止容器删除或重新创建时数据丢失。同时，也可以用于在开发过程中，将本地代码目录挂载到容器内，方便调试和开发。    -e（环境变量设置）  说明：用于在运行容器时设置环境变量，格式为-e [环境变量名]=[环境变量值]。例如，-e DEBUG=true可以在容器运行时设置一个名为DEBUG的环境变量，其值为true，容器内的应用程序可以读取这个环境变量来调整运行模式，如开启调试模式。 用途：动态地设置容器内的环境变量，在不同的运行场景下（如测试环境和生产环境）可以通过-e参数传递不同的环境变量值，从而改变容器内应用程序的行为。这比在Dockerfile中使用ENV更加灵活，因为ENV是在构建镜像阶段就固定了环境变量的值。    &#8211;name（容器名称）  说明：用于给运行的容器指定一个名称。例如，&#8211;name my_web_container会将运行的容器命名为my_web_container。 用途：方便对容器进行管理和引用。通过容器名称，可以更容易地识别容器的用途，并且在执行其他docker命令（如docker stop、docker start、docker logs等）时可以直接使用容器名称而不是容器 ID，使操作更加方便。    2、容器常用变量 HTTP_PROXY 和 HTTPS_PROXY  说明：在企业网络环境或者需要通过代理服务器访问互联网的场景中，这两个环境变量用于设置 HTTP 和 HTTPS 协议的代理服务器地址。例如，HTTP_PROXY=http://proxy.example.com:8080和HTTPS_PROXY=https://proxy.example.com:8080。 用途：当 Docker 在构建镜像（例如，使用RUN指令从互联网下载软件包）或者容器内的应用程序需要访问外部网络资源时，通过设置代理环境变量，可以使这些操作通过指定的代理服务器进行。这样可以满足企业网络安全策略或者解决网络访问限制的问题。  2-1、PATH  说明：这是一个在操作系统中广泛使用的环境变量，用于指定命令的搜索路径。在 Docker 容器中，PATH环境变量定义了容器内系统在执行命令时查找可执行文件的目录列表。例如，在 Ubuntu 容器中，默认的PATH可能包含/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。 用途：可以通过修改PATH环境变量来添加新的可执行文件目录。比如，当在容器内安装了一个新的软件，并且希望可以在任何目录下直接使用该软件的命令行工具时，就可以将该软件的安装目录添加到PATH中。例如，安装了一个自定义的脚本工具到/app/scripts目录，通过设置PATH=$PATH:/app/scripts，就可以在容器内的任何位置执行这个脚本工具。  2-2、JAVA_HOME  说明：对于 Java 应用程序，JAVA_HOME环境变量指定了 Java 开发工具包（JDK）或者 Java 运行时环境（JRE）的安装目录。例如，JAVA_HOME=/usr/lib/jvm/java &#8211; 8 &#8211; openjdk &#8211; amd64。 用途：许多 Java 应用程序和工具（如 Maven、Tomcat 等）需要知道JAVA_HOME的位置来正确运行。在 Docker 容器中，当构建和运行 Java 应用时，正确设置JAVA_HOME可以确保这些应用能够找到 Java 相关的库和工具。例如，在构建一个基于 Java 的 Web 应用容器时，通过设置JAVA_HOME并将其添加到PATH环境变量（如PATH=$PATH:$JAVA_HOME/bin），可以方便地执行 Java 命令（如java、javac等）来启动和编译应用程序。  2-3、PYTHONPATH  说明：对于 Python 应用程序，PYTHONPATH环境变量用于指定 Python 解释器查找模块的路径。例如，PYTHONPATH=/app/src:/app/libs表示 Python 解释器在查找模块时，除了默认的系统路径外，还会在/app/src和/app/libs目录中查找。 用途：在构建和运行 Python 容器应用时，通过设置PYTHONPATH，可以方便地组织 Python 代码的目录结构。例如，将应用程序的源代码目录和依赖的库目录添加到PYTHONPATH中，使得 Python 解释器能够正确地导入模块，从而确保应用程序能够顺利运行。  2-4、NODE_ENV  说明：在 Node.js 应用程序中，NODE_ENV是一个常用的环境变<a href="https://ymz666.top/2024/11/04/%e5%85%a8%e7%bd%91%e6%9c%80%e8%af%a6%e7%bb%86%e4%bb%8b%e7%bb%8d%e9%a3%9e%e7%89%9bnsa%ef%bc%88fn-os%ef%bc%89%e4%b9%8bdocker%e7%af%87%e9%83%a8%e7%bd%b2%e5%85%b0%e7%a9%ba%e5%9b%be%e5%ba%8a%ef%bc%88lsky/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">9de4f984371d59f8ff4c53c876ecbd62</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=633</link>
				<pubDate>Tue, 24 Sep 2024 10:33:39 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=633" rel="nofollow ugc">手把手教你——飞牛 NAS （Fn OS）安装迅雷插件后跟换下载目录</a></strong><a href="https://ymz666.top/?p=633" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2024/09/博客封面.jpg" /></a> 飞牛 NAS （Fn OS）是今年刚出的一款国产免费的nas系统，而里面的迅雷插件是基于docker安装的； 正文： 1、下载迅雷 登录飞牛 → 应用中心 → 找到迅雷点击安装     2、安装好之后我们打开docker页面     3、登录你的迅雷，设置完毕 nas版的迅雷是需要使用手机APP扫码登录的，如果是需要要求吗的话，可以试试下面的邀请码： 激活码：迅雷牛通<a href="https://ymz666.top/2024/09/24/%e9%a3%9e%e7%89%9b-nas-%ef%bc%88fn-os%ef%bc%89%e8%bf%85%e9%9b%b7%e6%8f%92%e4%bb%b6%e8%b7%9f%e6%8d%a2%e4%b8%8b%e8%bd%bd%e6%96%87%e4%bb%b6%e5%a4%b9/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">8fa9edc16367c17edb3b5d2d9e324a5e</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=630</link>
				<pubDate>Sat, 20 Apr 2024 14:58:59 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=630" rel="nofollow ugc">群晖安装驱动之『8125B 2.5G』网卡</a></strong><a href="https://ymz666.top/?p=630" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2024/04/未标题-1.jpg" /></a> 转载&amp;整理自互联网，经过了验证，请各位朋友按照教程一步一步来操<a href="https://ymz666.top/2024/04/20/%e7%be%a4%e6%99%96%e5%ae%89%e8%a3%85%e9%a9%b1%e5%8a%a8%e4%b9%8b%e3%80%8e8125b-2-5g%e3%80%8f%e7%bd%91%e5%8d%a1/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">9f5c9c8b31765e0e36432cae2c838930</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=626</link>
				<pubDate>Sun, 31 Dec 2023 07:12:00 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=626" rel="nofollow ugc">正版windows xp sp3 下载大全（附：正版密钥）转载</a></strong><a href="https://ymz666.top/?p=626" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/12/xp-56aa11bc5f9b58b7d000b196.jpg" /></a> 微软MSDN Windows XP Professional下载 Windows XP Professional 简体中文 （最原始版本，无SP）【505.63MB】 文件名：CN_WINXP_PRO_ISO.img 大小：530186240字节 SHA1：73800FE8959F40361BAE3A6553CC66D27D78722E 下载地址：ed2k://|file|CN_WINXP_PRO_ISO.img|530186240|7855069CE4216615D761654E2B75A4F7|/ 下载说明：将地址复制到迅雷里的新建任务栏里即可  Windows XP Professional with SP2简体中文【600.08MB】 文件名：sc_winxp_pro_with_sp2.iso 大小：629227520字节 SHA1：92934976213BB9201057281A200F84127BE0050D 下载地址：ed2k://|file|sc_winxp_pro_with_sp2.iso|629227520|505B810E128351482AF8B83AC4D04FD2|/  Windows XP Professional with SP2 VOL简体中文【592.56MB】 文件名：sc_win_xp_pro_with_sp2_vl.iso 大小：621346816字节 SHA1：C0ADDD927B5D1F93DCE9C455FD6B26EAC7391BE9 下载地址：ed2k://|file|sc_win_xp_pro_with_sp2_vl.iso|621346816|6F27DB53806D79FE37A0EDEC04AA9B05|/ 附上安装密钥： B66VY-4D94T-TPPD4-43F72-8X4FY VCFQD-V9FX9-46WVH-K3CD4-4J3JM HCQ9D-TVCWX-X9QRG-J4B2Y-GR2TT  Windows XP Professional with SP3简体中文【601.04MB】 文件名：zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso 大小：630239232字节 SHA1：69DBF131116760932DCF132ADE111D6B45778098 下载地址： ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso|630239232|CD0900AFA058ACB6345761969CBCBFF4|/  Windows XP Professional with SP3 VOL简体中文【601.04MB】 文件名：zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso 大小：630237184字节 SHA1：D142469D0C3953D8E4A6A490A58052EF52837F0F 下载地址： ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso|630237184|EC51916C9D9B8B931195EE0D6EE9B40E|/ VOL安装密钥： MRX3F-47B9T-2487J-KWKMF-RPWBY M6TF9-8XQ2M-YQK9F-7TBB2-XGG88 附：关于VOL解析 VOL是Volume Licensing for Organizations 的简称，中文即“团体批量许可证”。根据这个许可，当企业或者政府需要大量购买微软操作系统时可以获得优惠。这种产品的光盘卷标带有&#8221;VOL&#8221;字样，就取 &#8220;Volume&#8221;前3个字母，以表明是批量。这种版本根据购买数量等又细分为“开放式许可证”(Open License)、“选择式许可证(Select License)”、“企业协议(Enterprise Agreement)”、“学术教育许可证(Academic Volume Licensing)”等5种版本。根据VOL计划规定， VOL产品是不需要激活的。 自2001年Windows XP面世以来，微软共发行了五种版本： ——Windows XP Home Edition ——Windows XP Professional ——Windows XP Tablet PC Edition ——Windows XP 64-Bit Edition ——Windows XP Media Center Edition ——Windows XP SP1  2002年9月25日发布 ——Windows XP SP2  2004年8月22日发布 ——Windows XP SP3  2008年5月6日发布  Windows XP Home Edition(家庭版) 下载地址： ed2k://|file|CN_WINXP_HOME_ISO.img|513515520|58373CA20ABB0438AF5858AEBF22E983|/ SHA1: BACE4A06BDB82C3B0EDE14730CE031CF53BA8B95 Windows XP with sp2 Home Edition(家庭版)  下载地址： ed2k://|file|sc_winxp_home_with_sp2.iso|611358720|B80F4CCF312420015FFD5740057085B0|/ SHA1: F31B766CDBBB84826C09216A4B8CC7DFB1428493  Windows XP with sp3 Home Edition(家庭版) 下载地址： ed2k://|file|zh-hans_windows_xp_home_with_service_pack_3_x86_cd_x14-92408.iso|611794944|81DC0766DFB4082E18F1985D535C14D6|/ SHA1: F15EF466B1D87B1FFDADC246B8CE82287BD15ED5  Windows XP pro (第一发行原版) 下载地址： ed2k://|file|CN_WINXP_PRO_ISO.img|530186240|7855069CE4216615D761654E2B75A4F7|/ SHA1: 73800FE8959F40361BAE3A6553CC66D27D78722E  Windows XP pro with sp2 VOL 下载地址： ed2k://|file|sc_win_xp_pro_with_sp2_vl.iso|621346816|6F27DB53806D79FE37A0EDEC04AA9B05|/ SHA1: C0ADDD927B5D1F93DCE9C455FD6B26EAC7391BE9  Windows XP pro with sp3 VOL 下载地址： ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso|630237184|EC51916C9D9B8B931195EE0D6EE9B40E|/ SHA1: D142469D0C3953D8E4A6A490A58052EF52837F0F Windows XP pro with sp2(零售版) 下载地址： ed2k://|file|sc_winxp_pro_with_sp2.iso|629227520|505B810E128351482AF8B83AC4D04FD2|/ SHA1: 92934976213BB9201057281A200F84127BE0050D Windows XP pro with sp3(零售版) 下载地址： ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso|630239232|CD0900AFA058ACB6345761969CBCBFF4|/ SHA1: 69DBF131116760932DCF132ADE111D6B45778098  适用于以上版本的Key: VOL版KEY： MRX3F-47B9T-2487J-KWKMF-RPWBY BYCMB-R844W-KJBQX-J3D9F-V3Y6G D9Y7R-K3TM4-WTMY3-2BF8R-7MHVG 零售版KEY： H49F9-8RTVG-MTCVH-G2MFK-C47C8 RK7J8-2PGYQ-P47VV-V6PMB-F6XPQ MBVJW-DX8J2-BGTP4-G28XX-GHPTJ 安装后需要通过破解才能激活 家庭版KEY： BQJG2-2MJT7-H7F6K-XW98B-4HQRQ KWXXK-KD43C-86JQV-6BM33-FBMXG 安装后需要通过破解才能激活  Windows XP 64位 Windows XP pro with sp2 64位 VOL (英文版)迅雷下载地址： thunder://QUFodHRwOi8vc29mdHdhcmUubmN1LmVkdS50dy85Ni9FTi9pc28vWFBfNjRiaXQuaXNvWlo=  Windows XP Edition with sp2 64位VOL(英文版) 下载地址： ed2k://|file|en_win_xp_pro_x64_with_sp2_vl_X13-41611.iso|628168704|5573EEA1F40FE32E46F4615B6A4E71D8|/ SHA1: CD9479E1DBAD7F26B8BDCF97E4AA71CBB8DE932B  Windows XP Edition 64位VOL(英文版) 下载地址： ed2k://|file|en_windows_xp_professional_x64.iso|614168576|DCEE7C1436E165867DDC75FBA1790BC7|/ SHA1: A70B118316A9A451B966A082E7C1DD0E8018718D 64位XP中文包下载地址：  64位CD-Key: VCFQD-V9FX9-46WVH-K3CD4-4J3JM B66VY-4D94T-TPPD4-43F72-8X4FY  Windows XP Tablet PC Edition CD1: ed2k://|file|sc_win_xp_tabletpc_2005_disc1_vl.iso|621346816|6F27DB53806D79FE37A0EDEC04AA9B05|/ SHA1: 92934976213BB9201057281A200F84127BE0050D CD2: ed2k://|file|sc_win_xp_tabletPC_2005_disc2_vl.iso|233066496|F691BBA9A376B281CDE19FD2E6EF36F9|/ SHA1: 31DA9C6D716AF4DC788496077709E274F8DE6820  Windows XP Tablet PC Edition 2005(CD1) ed2k://|file|sc_winxp_tablet_2005_CD1.iso|629227520|505B810E128351482AF8B83AC4D04FD2|/ 或ed2k://|file|sc_win_xp_tabletpc_2005_disc1_vl.iso|621346816|6F27DB53806D79FE37A0EDEC04AA9B05|/  Windows XP Tablet PC Edition 2005(CD2) ed2k://|file|sc_winxp_tablet_2005_CD2.iso|233066496|F691BBA9A376B281CDE19FD2E6EF36F9|/ 或ed2k://|file|sc_win_xp_tabletPC_2005_disc2_vl.iso|233066496|F691BBA9A376B281CDE19FD2E6EF36F9|/  Windows XP Tablet PC Edition 2005有效安装密钥： WDTJD-DJKG3-6GFV2-J47FD-6DH4M VBGB7-9RDHQ-B322V-Q26VJ-BB3KG WQCFM-RGHG9-PPP4Q-JG8Y8-6D7D8 HG8F3-B7432-CR7CM-JP8V2-BYMJM MPV7Q-8GPT9-HRTQT-X4879-D3QBD  Windows XP Media Center Edition 2005正式版(媒体中心版) CD1点击下载： <a href="ftp://big.3800cc.net/down1/jc/sc_winxp_mce_2005_cd1.iso" rel="nofollow ugc">ftp://big.3800cc.net/down1/jc/sc_winxp_mce_2005_cd1.iso</a> SHA1: 8D6A1AA1871C49314CB9DF4899E025CA63058FC0 CD2点击下载： <a href="ftp://big.3800cc.net/down1/jc/sc_winxp_mce_2005_cd2.iso" rel="nofollow ugc">ftp://big.3800cc.net/down1/jc/sc_winxp_mce_2005_cd2.iso</a> SHA1: 01B8242AC47BC04D1940869D5B06FDFF30B370C6 媒体中心版一定要用DXW9P-7TP7K-97M9K-WCD38-6XFR6进行安装，不然无法安装CD2的.<a href="https://ymz666.top/2023/12/31/%e6%ad%a3%e7%89%88windows-xp-sp3-%e4%b8%8b%e8%bd%bd%e5%a4%a7%e5%85%a8%ef%bc%88%e9%99%84%ef%bc%9a%e6%ad%a3%e7%89%88%e5%af%86%e9%92%a5%ef%bc%89%e8%bd%ac%e8%bd%bd/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">c42f1dc3d140624ce8ce214833b7ff51</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=624</link>
				<pubDate>Sun, 31 Dec 2023 07:01:58 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=624" rel="nofollow ugc">CentOS7安装Zabbix6.4</a></strong><a href="https://ymz666.top/?p=624" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/12/zabbix6.4.jpg" /></a> 安装准备： Zabbix更新到最新版本6.4，以下就是Zabbix6.4在CentOS7系统上的安装流程 Zabbix从6.0版本开始就不支持在CentOS7系统上根据官方文档快速安装server端了 因此我们只<a href="https://ymz666.top/2023/12/31/centos7%e5%ae%89%e8%a3%85zabbix6-4/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">57a18acb8752889c1f15d00f87214fc7</guid>
				<title>夜猫子—曾六和 IT大佬 已经成为好友</title>
				<link>https://www.liuzi233.cn/%e5%8a%a8%e6%80%81/p/79/</link>
				<pubDate>Sun, 24 Dec 2023 01:22:49 +0800</pubDate>

				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">43c13a779f46ed4ece65fd1f104b9780</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=615</link>
				<pubDate>Wed, 29 Nov 2023 15:51:34 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=615" rel="nofollow ugc">玩客云直刷openwet固件，不需要刷Armbian底包</a></strong><a href="https://ymz666.top/?p=615" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/11/OpenWrt-Article-Lemberg-Solutions.png" /></a> <a href="https://ymz666.top/2023/11/29/%e7%8e%a9%e5%ae%a2%e4%ba%91%e7%9b%b4%e5%88%b7openwet%e5%9b%ba%e4%bb%b6%ef%bc%8c%e4%b8%8d%e9%9c%80%e8%a6%81%e5%88%b7armbian%e5%ba%95%e5%8c%85/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">7e080faa33698b6bdc135bbc20d045d3</guid>
				<title>夜猫子—曾六发布了一条新的动态评论</title>
				<link>https://ymz666.top/2023/05/22/openwrt-x86-64%e5%9b%ba%e4%bb%b6%e9%80%9a%e7%94%a8%e7%89%88%e4%b8%8b%e8%bd%bd/#comment-20</link>
				<pubDate>Sat, 11 Nov 2023 00:25:05 +0800</pubDate>

									<content:encoded><![CDATA[<p>会跳出来的</p>
				<strong>回复于</strong> -
				<a href="https://www.liuzi233.cn/%e6%88%90%e5%91%98/liuzi/" rel="nofollow ugc">夜猫子—曾六</a> 发布了一篇新文章 <strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc">OpenWrt x86/64固件通用版下载</a></strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc"></a> 原始设置： 旁路由模式 关节DHCP功能，由主路由工作些功能 USB网卡：开 默认主题：Argon 后台地址：19<a href="https://www.liuzi002.top/2023/05/22/openwrt-x86-64%e5%9b%ba%e4%bb%b6%e9%80%9a%e7%94%a8%e7%89%88%e4%b8%8b%e8%bd%bd/" rel="nofollow ugc">阅读更多</a>			]]></content:encoded>
				
				
							</item>
					<item>
				<guid isPermaLink="false">066f76ff552e82b4d0e4dba150cd8970</guid>
				<title>夜猫子—曾六发布了一条新的动态评论</title>
				<link>https://ymz666.top/2023/05/22/openwrt-x86-64%e5%9b%ba%e4%bb%b6%e9%80%9a%e7%94%a8%e7%89%88%e4%b8%8b%e8%bd%bd/#comment-17</link>
				<pubDate>Thu, 26 Oct 2023 10:05:55 +0800</pubDate>

									<content:encoded><![CDATA[<p>它只是一个固件&#x1f627;需要什么功能还是要自己添加进去的</p>
				<strong>回复于</strong> -
				<a href="https://www.liuzi233.cn/%e6%88%90%e5%91%98/liuzi/" rel="nofollow ugc">夜猫子—曾六</a> 发布了一篇新文章 <strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc">OpenWrt x86/64固件通用版下载</a></strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc"></a> 原始设置： 旁路由模式 关节DHCP功能，由主路由工作些功能 USB网卡：开 默认主题：Argon 后台地址：19<a href="https://www.liuzi002.top/2023/05/22/openwrt-x86-64%e5%9b%ba%e4%bb%b6%e9%80%9a%e7%94%a8%e7%89%88%e4%b8%8b%e8%bd%bd/" rel="nofollow ugc">阅读更多</a>			]]></content:encoded>
				
				
							</item>
					<item>
				<guid isPermaLink="false">02bf8655d1b7afc32ee32b8c375462cb</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=605</link>
				<pubDate>Wed, 27 Sep 2023 10:37:47 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=605" rel="nofollow ugc">全网最全NASTool功能介绍大全（适用2.9.x、3.x.x版本）</a></strong><a href="https://ymz666.top/?p=605" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/全网最全NASTool功能介绍大全（适用2.9.x、3.x.x版本）.png" /></a> 前言： NAStool开源地址：https://github.com/NAStool/nas-tools NASTool官方TG交流群组：https://t.me/nastool_official NASTool官方教程WiKi文档：https://wiki.nastool.org/ 有使用问题看这个！看这个！！！ NASTool资源归集、自动化整理工具，RSS订阅、P<a href="https://ymz666.top/2023/09/27/%e5%85%a8%e7%bd%91%e6%9c%80%e5%85%a8nastool%e5%8a%9f%e8%83%bd%e4%bb%8b%e7%bb%8d%e5%a4%a7%e5%85%a8%ef%bc%88%e9%80%82%e7%94%a82-9-x%e3%80%813-x-x%e7%89%88%e6%9c%ac%ef%bc%89/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">d8103b64f179f74ad54e88758921b951</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=602</link>
				<pubDate>Wed, 27 Sep 2023 02:28:37 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=602" rel="nofollow ugc">Midjourney 作品集风格AI图库</a></strong><a href="https://ymz666.top/?p=602" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/QQ截图20230927102535.png" /></a> Midlibrary是一个在线作品集风格的AI图库，提供各种类型风格的AI作品集和Midjourney提示词资源，能为我们生成不同风格样式的 AI 图像提供便捷的参考，目前收录了3939种适用于Midjourney AI的流派、艺术运动、技巧、标题和艺术家风格库，涵盖建筑师、艺术技巧、设计师<a href="https://ymz666.top/?p=602" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">8ce87d7808cd8c7b2695a0b7a5cb8b42</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=598</link>
				<pubDate>Sun, 24 Sep 2023 13:44:30 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=598" rel="nofollow ugc">Wordpress使用百度统计代码</a></strong><a href="https://ymz666.top/?p=598" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/20190310_5c851148cce5f.jpg" /></a> 前言： 百度统计是流量分析平台，可以帮助收集网站访问数据，提供流量趋势、来源分析、转化跟踪、页面热力图、访问流等多种统计分析服务，同时与百度搜索、百度推广、云服务无缝结合，对于在国内运营的网站数据统计，使用的比较多的免费平台。 获得百度统计代码 1、注册并登录百度统计网站：https://t<a href="https://ymz666.top/?p=598" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">c465691a248fc60fb35f4fa8f5379ff8</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=596</link>
				<pubDate>Sun, 24 Sep 2023 12:49:40 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=596" rel="nofollow ugc">Emby解锁VIP（Premiere）付费服务的方法（群晖套件、Docker可用）</a></strong><a href="https://ymz666.top/?p=596" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/微信截图_20230924214736.jpg" /></a> 前言： 目前比较流行的影音软件有PLEX、EMBY、JellyFin，而前二者都是需要付费才能解锁高级功能，解除数量限制或使用硬件转码。 本文参考neko.re做的教程记录，详细可见原文章。 （ssh连接工具：MobaXterm下载地址） （因为自动更新会覆盖原来替换过的文件，所以 Emby 更新后需要重新完成解锁过程。） 2021.11.1 : 由于伪验证服务器已关闭，原解锁方法已失效！如果你喜欢 Emby，请购买支持正版 Emby Premiere！ 2022.4.20 : 有大神制作了EmbyServer4.6.7.0开心补丁(只支持4.6.7.0版EMBY官方套件)，服务器端安装此套件再删除即可完成解锁，亲测可用。（PS：只对此补丁分享给大家下载，对于可能存在的不稳定因素和后果，本站不做任何担保和承诺，使用需慎重！） 2022.5.21 : 更新了EmbyServer4.7.0.60开心补丁(只支持4.7.0.60版EMBY官方套件)，注意事项同上。 2022.9.1 : 以上方法已失效，抱歉 2023.1.1 : 有大神重新搭建了第三方激活服务器，原文链接：重新学习并解锁破解emby4.6.7,4.7.*版本 | Bruce’s Blog (peos.cn) 并且版本更新到了4.8.x，想学习的可用看看这篇文章，内容很详尽 方法和下面的步骤大差不差，就是更换了链接，优化了步骤。我针对大神提供的新链接重新更新了教程，觉得大神文章太枯燥或者小白用户，可以看看我整理的内容。 群晖套件破解 1、EMBY群晖套件可以在此网址下载并手动安装（请记住安装的套件版本）：Emby Server for Synology NAS 2、打开大神的整合网盘，打开适合自己Emby版本的目录（这里以4.7.11.0为例），复制图中sh文件链接  3、ssh 登录控制台， sudo -i 获取 root 权限，执行以下命令（使用上步骤的链接以及文件名） &#8220; wget <a href="https://act.jiawei.xin:10086/tmp/emby/4.7.11.0/synology6-7crack_4.7.11.sh" rel="nofollow ugc">https://act.jiawei.xin:10086/tmp/emby/4.7.11.0/synology6-7crack_4.7.11.sh</a> sh synology6-7crack_4.7.11.sh 4、破解过程中会有个提醒，个性化功能询问是否修改主题文件，这个看自己需求。   看到这个提示便完成服务端破解。 Docker版破解 ssh 登录控制台， sudo -i 获取 root 权限，并用以下命令拉取破解好的Emby Docker镜像 x64设备： docker pull xinjiawei1/emby_unlockd:latest arm64设备： docker pull codion/emby_crack:4.7.5.0-ARM 拉取到镜像后，就可以参考Emby Docker的安装方法进Docker套件安装。 对于有经验的，也可以采用下面这样的命令直接安装，需要按自己的情况修改命令。 （因为涉及要装载目录更繁琐，所以还是推荐安装套件来的方便） &#8220; docker run -d  &#8211;name embyserver  &#8211;volume /path/to/programdata:/config  # Configuration directory &#8211;volume /path/to/share1:/mnt/share1  # Media directory &#8211;volume /path/to/share2:/mnt/share2  # Media directory &#8211;net=host  # Enable DLNA and Wake-on-Lan &#8211;device /dev/dri:/dev/dri  # VAAPI/NVDEC/NVENC render nodes &#8211;device /dev/vchiq:/dev/vchiq  # MMAL/OMX on Raspberry Pi &#8211;runtime=nvidia  # Expose NVIDIA GPUs &#8211;publish 8096:8096  # HTTP port &#8211;publish 8920:8920  # HTTPS port xinjiawei1/emby_unlockd:latest 最后破解 重启EMBY并清除浏览器缓存，进入Emby后台，选择Emby Premiere； 在Emby Premiere 密钥输入任意字符后保存，如下图显示显<a href="https://ymz666.top/2023/09/24/emby%e8%a7%a3%e9%94%81vip%ef%bc%88premiere%ef%bc%89%e4%bb%98%e8%b4%b9%e6%9c%8d%e5%8a%a1%e7%9a%84%e6%96%b9%e6%b3%95%ef%bc%88%e7%be%a4%e6%99%96%e5%a5%97%e4%bb%b6%e3%80%81docker%e5%8f%af%e7%94%a8/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">e7c3f4175a6c7747996b984107e11f05</guid>
				<title>夜猫子—曾六 在版块 黑、白群辉 中发起了话题 黑群晖的xs+系列到底能不能解决显卡解码问题？</title>
				<link>https://ymz666.top/topic/%e9%bb%91%e7%be%a4%e6%99%96%e7%9a%84xs%e7%b3%bb%e5%88%97%e5%88%b0%e5%ba%95%e8%83%bd%e4%b8%8d%e8%83%bd%e8%a7%a3%e5%86%b3%e6%98%be%e5%8d%a1%e8%a7%a3%e7%a0%81%e9%97%ae%e9%a2%98%ef%bc%9f/</link>
				<pubDate>Fri, 15 Sep 2023 02:59:27 +0800</pubDate>

				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">f7d760db20fe8e96d19fe39460fe632e</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=544</link>
				<pubDate>Thu, 14 Sep 2023 14:39:55 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=544" rel="nofollow ugc">Wordrepss（博客站点）自动备份</a></strong><a href="https://ymz666.top/?p=544" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/images.jpg" /></a> 一、配置ssh免密登录 1-1、 在Windows客户端上配置免密登录，打开cmd终端输入 ssh-keygen -t rsa 然后直接按回车，不需要输入什么，然后会自动生成文件，文件路径在 C:users  用户.ssh文件下。<a href="https://ymz666.top/?p=544" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">f9834057c390c71723923ac59fc85a8c</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=532</link>
				<pubDate>Thu, 14 Sep 2023 04:41:28 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://ymz666.top/?p=532" rel="nofollow ugc">开站第一篇图文分享（站长自拍）</a></strong><a href="https://ymz666.top/?p=532" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/mmexport1628942834963_1628960688022_71-768x576.jpg" /></a> <a href="https://ymz666.top/2023/09/14/%e5%bc%80%e7%ab%99%e7%ac%ac%e4%b8%80%e7%af%87%e5%9b%be%e6%96%87%e5%88%86%e4%ba%ab%ef%bc%88%e7%ab%99%e9%95%bf%e8%87%aa%e6%8b%8d%ef%bc%89/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">1ac9c9ebb52bcd84998b13f1643f53b7</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=449</link>
				<pubDate>Tue, 05 Sep 2023 15:36:27 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=449" rel="nofollow ugc">NASTool第三方插件扩展包，群晖、Docker（可以使用自定义索引器了）</a></strong><a href="https://www.liuzi002.top/?p=449" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/微信截图_20230905235108.png" /></a> 前言： 一个叫Fly的大神制作了制作了NASTool的第三方插件商店，下面是转载内容，所有版权在制作者。 项目开源地址：https://gitee.com/Mattoid/nas-tools-plugin 第三方插件商店拓展包 后续更新将通过系统内部的更新检测功能从 mattoids/nas-tools 仓库拉取 该仓库后续仅提供插件安装和更新服务，不在提供系统级别的更新 若该仓库无法正常拉取，可使用 github 仓库进行拉取 目录介绍 ├── logo                        # nastool的logo ├── package │   ├── install.sh              # 一键安装脚本 │   └── nas-tools-plugin.tar    # 拓展更新包 ├── plugins                     # 新增插件 │   ├── images                  # 插件对应的图片 ├── sites                       # 站点规则目录（用于自定义索引器配置索引规则） │   ├── brush                   # 刷流规则（不配置的话刷流页面站点无法选择免费种子）   ├── README.md                   # 说明文件 └── source.json                 # 源地址配置 安装方法 根据系统执行对应的命令即可，需要root权限执行。 也可下载 shell 脚本，从脚本内提取安装包，自行替换 nas-tools 目录 docker shell（容器内部执行） bash &lt;(curl -s <a href="https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh" rel="nofollow ugc">https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh</a>) dockershell docker（容器外部执行） bash &lt;(curl -s <a href="https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh" rel="nofollow ugc">https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh</a>) docker 群晖套件dsm7.x bash &lt;(curl -s <a href="https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh" rel="nofollow ugc">https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh</a>) dsm7 群晖套件dsm6.x bash &lt;(curl -s <a href="https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh" rel="nofollow ugc">https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh</a>) dsm6 脚本运行报错的时候尝试下面的命令 curl -O <a href="https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh" rel="nofollow ugc">https://gitee.com/Mattoid/nas-tools-plugin/raw/master/package/install.sh</a> &amp;&amp; chmod 655 install.sh &amp;&amp; ./install.sh docker 第三方源  . . . . 输入命令后会等到这样的反馈 .   图文说明 第一步、打开第三方插件商店  第二步、进入商店设置页面  第三步添加第三方插件源   完成以上操作以后，关闭第三方插件页面，重新打开即可看到插件，安装即可 插件使用说明 添加站点规则 这里的【站点域名】需要和站点里的【站点地址】配置一致  填写 站点域名 + 原始域名 站点索引规则 为空  打开 json 格式化网址  1. 复制上一步输入框的内容 2. 打开解析站点 3. 粘贴到网站中点【格式化校验】和【Unicode转中文】，修改name为你添加的站点的中文名（随便写也没关系）<a href="https://ymz666.top/2023/09/05/nastool%e7%ac%ac%e4%b8%89%e6%96%b9%e6%8f%92%e4%bb%b6%e6%89%a9%e5%b1%95%e5%8c%85%ef%bc%8c%e7%be%a4%e6%99%96%e3%80%81docker%ef%bc%88%e5%8f%af%e4%bb%a5%e4%bd%bf%e7%94%a8%e8%87%aa%e5%ae%9a%e4%b9%89/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">386c34fe3a571407cdc74e37a4d660f3</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=426</link>
				<pubDate>Tue, 05 Sep 2023 14:20:51 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=426" rel="nofollow ugc">更换qBittorrent主题（群晖套件版）Web UI：qb-web、VueTorrent、iQbit（适应手机）</a></strong><a href="https://www.liuzi002.top/?p=426" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/Como-activar-configurar-y-usar-la-interfaz-web-de-qBittorrent-640x335-1.jpg" /></a> 前言： qBittorrent默认主题肯定是最好的。。。 就是手机web界面不好用。。。  下面正式开始 群晖矿神套件源： DSM6.x矿神SPK套件源：https://spk.imnks.com/ DSM7.x矿神SPK套件源：https://spk7.imnks.com/ 脚本只支持群晖‘套件’ ‘套件’‘套件’‘套件’，不支持‘Docker’！‘Docker’可以自己下载压缩包映射路径即可。 如何添加套件源和下载套件以及使用ssh连接就不说了（用root账户），不懂的请自己去百度一下。 复制下面命令到命令窗口 wget <a href="http://code.imnks.com/qb-webui/webui_0610.tar.gz" rel="nofollow ugc">http://code.imnks.com/qb-webui/webui_0610.tar.gz</a> tar -zxvf webui_0610.tar.gz -C /var/packages/qBittorrent/target/qBittorrent_conf/config/ cd /var/packages/qBittorrent/target/qBittorrent_conf/config/  下面我们来修复文件夹权限，‘请注意区分是DSM7.X、还是DSM6.X’请对号入座 chown -R qBittorrent:qBittorrent webui #DSM7.x修复文件夹权限，看清楚DSM7.x是‘7’啊   chown -R sc-qBittorrent:qBittorrent webui #DSM6.x修复文件夹权限,看清楚DSM6.x是‘6’啊 修复完成后就会得到下面的反馈  安装完毕在qBittorrent选项 Web UI界面启用填写路径。  填写好路径就点击‘保存’。下面是主题展示 如果路径填错等无法打开，一键恢复：（用ssh恢复，以前浏览器访问特殊地址方法无效。） sed -i &#039;s/AlternativeUIEnabled=true/AlternativeUIEnabled=false/g&#039; /var/packages/qBittorrent/target/qBittorrent_conf/config/qBittorrent.conf 1、qb-web ☆☆☆☆ 项目地址：https://github.com/CzBiX/qb-web Web UI路径：/var/packages/qBittorrent/target/qBittorrent_conf/config/webui/qb-web 浏览器界面清爽，支持亮色暗色界面，基本配置都可以操作，RSS和搜索也可以使用。 1-1、web UI界面  1-2、手机web UI界面  2、VueTorrent ☆☆☆☆☆ 项目地址：https://github.com/WDaan/VueTorrent Web UI路径：/var/packages/qBittorrent/target/qBittorrent_conf/config/webui/vuetorrent 浏览器界面比较现代化 2-1、web UI界面   2-2、手机web UI界面  3、iQbit ☆☆ 项目地址：https://codeload.github.com/ntoporcov/iQbit/zip/refs/he<a href="https://ymz666.top/2023/09/05/%e6%9b%b4%e6%8d%a2qbittorrent%e4%b8%bb%e9%a2%98%ef%bc%88%e7%be%a4%e6%99%96%e5%a5%97%e4%bb%b6%e7%89%88%ef%bc%89web-ui%ef%bc%9aqb-web%e3%80%81vuetorrent%e3%80%81iqbit%ef%bc%88%e9%80%82%e5%ba%94%e6%89%8b/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">020f0f106dd6b765c24674e632a4b473</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=415</link>
				<pubDate>Mon, 04 Sep 2023 08:14:01 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=415" rel="nofollow ugc">部署zerotier客户端（Linux版本）适用于CentOS、Ubuntu等系统</a></strong><a href="https://www.liuzi002.top/?p=415" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/09/chapter-31-running-zerotier-on-the-raspberry-pi-4-2-scaled.webp" /></a> 前言： 开始之前，请先到官网http://zerotier.com  注册一个帐号，创建网络交换机  注册好账号之后可以到官方文档了解，zerotier使用的是perl语言编写的异地组网程序，使用的是p2p的点对点技术，带宽的上限是你自身的上行带宽，操作简单，使用效果好。 （声明：如果你的ipv4、ipv6不稳定的情况下，连接也会不稳定，比如你的梯子节点自动切换、节点延迟高等，都会出现无法连接的，解决方法就是添加规则白名单，把中继站的ip和域名都填到白名单中）  同时zerotier是支持自建中继站的 开始前是用ssh连接上你的liunx设备 [========] 一、下载ZeroTier并且加入组网络 1、下载ZeroTier curl -s <a href="https://install.zerotier.com" rel="nofollow ugc">https://install.zerotier.com</a> | sudo bash 2、开启zerotier zerotier-one -d 如果你启动zerotier，遇到&#8221;zerotier-one: fatal error: cannot bind to local controlinterface port 9993&#8243; ，提示端口9993被占用，请不要谎我们进行查看端口信息。                    #没有遇到的话请跳过                    #没有遇到的话请跳过                    #没有遇到的话请跳过 netstat -lp | grep zero  killall -9 zerotier-one 我们对这些进程进行强行kill，这个过程可能不太成功，多尝试几次直到这些进程完全关闭。 3、加入网络ID sudo zerotier-cli join ################ 请把‘#’换成自己的网络ID  至此，Linux已经加入到了自己的组网络之中 二、设置zerotier 添加完liunx后，我们回到zerotier的网络界面  1、添加内网ip网段 比如你家里路由ip地址是‘192.168.100.1’那么我们就在Destination这个路由网段上添‘192.168.100.0/24’这个网段，以此类推。 而Via是写你zerotier的IP地址，可以在看Members或者下面的  2-2 只有路由系统才需要这步操作，其他的可以跳过  2、添加客户端网络ID 如果客户端添加成功的话，我们在下图界面是可以看到自己网络设备的  到这里，我们就可以使用zerotier了 而安装win、ios、Mac这类客户端就比较简单了，只要下载好客户端并且安装好之后，再回到zerotier给设备打上勾就能能使用了 同时zerotier使用的是内网防火墙，所以只要是内网开放的端口，就能使用，不需要单独打开端口 如果需要部署zerotier根服务器的，可以看看这篇文章：https:/<a href="https://ymz666.top/2023/09/04/%e9%83%a8%e7%bd%b2zerotier%e5%ae%a2%e6%88%b7%e7%ab%af%ef%bc%88linux%e7%89%88%e6%9c%ac%ef%bc%89%e8%af%95%e7%94%a8%e4%ba%8ecentos%e3%80%81ubuntu%e7%ad%89%e7%b3%bb%e7%bb%9f/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">4d393cee582fa2162224b7ef7b2d7bba</guid>
				<title>夜猫子—曾六在文章 群晖套件：NVIDIARuntimeLibrary_开启你群晖的硬件解码（支持DS918 920 923等DSM6、7） 中发布了一条评论</title>
				<link>https://www.liuzi002.top/2023/03/27/%e7%be%a4%e6%99%96%e5%a5%97%e4%bb%b6%ef%bc%9anvidiaruntimelibrary_%e5%bc%80%e5%90%af%e4%bd%a0%e7%be%a4%e6%99%96%e7%9a%84%e7%a1%ac%e4%bb%b6%e8%a7%a3%e7%a0%81%ef%bc%88%e6%94%af%e6%8c%81ds918-920-923/#comment-14</link>
				<pubDate>Sat, 29 Jul 2023 12:50:07 +0800</pubDate>

									<content:encoded><![CDATA[<p>得到的结果是，没有这个路径，首先你要确定，你的群晖型号是不是在支持列表里，需要执行这些命令的只有7.x以上的系统。6.x是不用的</p>
]]></content:encoded>
				
				
							</item>
					<item>
				<guid isPermaLink="false">c8b70d9b03812d9f0f0fa60e26445a5a</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=390</link>
				<pubDate>Thu, 06 Jul 2023 04:58:26 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=390" rel="nofollow ugc">群辉Advanced Media Extensions 3.x激活补丁</a></strong><a href="https://www.liuzi002.top/?p=390" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/07/微信截图_20230706125113.png" /></a> 只适用于x86_64的：DSM7.x Advanced Media Extensions (AME)版本3.0.<a href="https://ymz666.top/2023/07/06/%e7%be%a4%e8%be%89advanced-media-extensions-3-x%e6%bf%80%e6%b4%bb%e8%a1%a5%e4%b8%81/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">6a11505bf53673a94ad723e9080356da</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=382</link>
				<pubDate>Tue, 30 May 2023 14:13:33 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=382" rel="nofollow ugc">要使用轻量服务器搭建 X-ui 面板</a></strong><a href="https://www.liuzi002.top/?p=382" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/05/910bdab244704bde3e86d2d3fb35f0ce.png" /></a> &#8211; 前言： 选择合适的轻量级服务器：首先，您需要选择一台适合的轻量级服务器，可以选择基于 Linux 的轻量级发行版，如 Ubuntu Server、Debian、CentOS 等。确保服务器具有足够的硬件资源和网络连接。 （每一个教程都是独立、简易的教程，并不是<a href="https://www.liuzi002.top/?p=382" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">982e46973e0019a0352a56705502d7fe</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=376</link>
				<pubDate>Mon, 22 May 2023 11:44:31 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc">OpenWrt x86/64固件通用版下载</a></strong><a href="https://www.liuzi002.top/?p=376" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/05/微信截图_20230522194345.png" /></a> 原始设置： 旁路由模式 关节DHCP功能，由主路由工作些功能 USB网卡：开 默认主题：Argon 后台地址：19<a href="https://www.liuzi002.top/2023/05/22/openwrt-x86-64%e5%9b%ba%e4%bb%b6%e9%80%9a%e7%94%a8%e7%89%88%e4%b8%8b%e8%bd%bd/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>5</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">a4eddc8bddb95fc9aa23f0626e84c4e6</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://liuzi002.top/?p=362</link>
				<pubDate>Sat, 29 Apr 2023 15:57:54 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://liuzi002.top/?p=362" rel="nofollow ugc">用Python代码制作m3u文件电视指南</a></strong><a href="https://liuzi002.top/?p=362" rel="nofollow ugc"><img loading="lazy" src="https://liuzi002.top/wp-content/uploads/2023/03/M3U.jpg" /></a> 前言： M3U（MP3 URL 或运动图像专家组音频层3 统一资源定位符 （全称）是用于多媒体播放列表的计算机文件格式。M3 U文件格式的一个常见用途是创建指向<a href="https://liuzi002.top/?p=362" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">b250d62e0d98ed3dd805c67785656685</guid>
				<title>夜猫子—曾六在文章 Microsoft Windows自带数据恢复软件【简称：WinFR】 中发布了一条评论</title>
				<link>https://liuzi002.top/2023/04/09/microsoft-windows%e8%87%aa%e5%b8%a6%e6%95%b0%e6%8d%ae%e6%81%a2%e5%a4%8d%e8%bd%af%e4%bb%b6%e3%80%90%e7%ae%80%e7%a7%b0%ef%bc%9awinfr%e3%80%91/#comment-8</link>
				<pubDate>Fri, 21 Apr 2023 05:51:52 +0800</pubDate>

									<content:encoded><![CDATA[<p>(▼皿▼#)好用就行，哪来那么多事！</p>
]]></content:encoded>
				
				
							</item>
					<item>
				<guid isPermaLink="false">e176398e64806f9eb72bcf9c953ebb86</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=286</link>
				<pubDate>Sun, 09 Apr 2023 04:00:00 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=286" rel="nofollow ugc">Microsoft Windows自带数据恢复软件【简称：WinFR】</a></strong><a href="https://www.liuzi002.top/?p=286" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/04/winFR11.png" /></a> 前<a href="https://ymz666.top/2023/04/09/microsoft-windows%e8%87%aa%e5%b8%a6%e6%95%b0%e6%8d%ae%e6%81%a2%e5%a4%8d%e8%bd%af%e4%bb%b6%e3%80%90%e7%ae%80%e7%a7%b0%ef%bc%9awinfr%e3%80%91/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">f4a613eb4bdef16790e8b5ebfed7e0e3</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=275</link>
				<pubDate>Mon, 27 Mar 2023 13:00:41 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=275" rel="nofollow ugc">群晖套件：NVIDIARuntimeLibrary_开启你群晖的硬件解码（支持DS918 920 923等DSM6、7）</a></strong><a href="https://www.liuzi002.top/?p=275" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/03/群晖套件：NVIDIARuntimeLibrary_开启你群晖的硬件解码（支持DS918-920-923等DSM6、7）.png" /></a> 前言： 本套件出自《我不是矿神》论坛 NVIDIARuntimeLibrary是NVIDIA显卡的运行库，包含CUDA等。本套件移植自群晖DVA3221，添加了显卡驱动，支持4.x内核的群晖。显卡也不一定局限于GTX1650、GTX1050 Ti，比如Tesla P4、Quadro P400这些专业显卡群友测试也可以的。 注意：非DVA3221机型不支持Surveillance Station里面人工智能、人脸识别处理。DVA3221去下载官方套件安装！（如果黑群晖对集显和nvme缓存无需求的话建议直接上DVA3221引导！！！）   支持NVDEC解码Decoding的显卡列表：查看NVIDIAR官方文档，了解详情 目前反馈群晖440驱动最高只支持到GTX1650或DDR5的1660S 目前反馈群晖440驱动最高只支持到GTX1650或DDR5的1660S  目前黑群晖机型测试结果：2023.2.19 denverton：DVA3221 (&#x2705;肯定OK，安装官方套件) apollolake：DS918+ (&#x2705;测试OK) geminilake：DS920+ (&#x2705;测试OK) geminilake：DVA1622 (未测试，应该是支持的) v1000：DS2422+ (未测试，应该是支持的) v1000：DS1621+ (&#x2705;测试OK) r1000：DS923+ (&#x2705;测试OK) bromolow：DS3615xs （&#x274c;3.x内核不支持） broadwellnk：DS3622xs+ （&#x274c;lspci能看到设备，无法加载驱动） broadwellnk：DS1621xs+ (未测试，估计加载不了) broadwell：DS3617xs （&#x274c;lspci能看到设备，无法加载驱动） 白群晖DS1821+： (&#x2705;群友测试OK) 总结：数字+的可以，xs+的肯定不行，所以就不要去做测试了。  首先我们在群晖的可视化桌面的套件中心里面添加矿神的套件源： DSM6：https://spk.imnks.com/ DSM7：https://spk7.imnks.com/ （请按照自己的版本添加套件源，不要添加错了，不会添加的，请自行百度或者谷歌）   找到“NVIDIARuntimeLibrary”套件进行安装  同时也要安装：ffmpeg  这个套件，来代替官方的解码程序  安装好套件之后，我们使用ssh工具进行连接，本人自用的ssh软件是“MobaXterm”下载地址   按照下面图片的步骤进入ssh： 1、打开群晖的控制面板&#8212;终端机和SNMP      2、打开ssh软件&#8212;输入群晖内网ip&#8212;端口号：22&#8212;点击确认    进入之后，输入你群晖的登录账号和密码（输入密码时是看不到的） 然后输入：sudo -i   输入密码（和刚刚输入的登录密码一样） 获取群晖临时的root账号权限    DSM7套件安装完毕SSH连接群晖执行以下修复和启动：安装后只需搞一次。DSM6不需要操作！！！ 再一次输入下面这两行代码 #修复套件 cd /var/packages/NVIDIARuntimeLibrary/conf &amp;&amp; mv -f privilege.bak privilege #重启套件 cd /var/packages/<a href="https://ymz666.top/2023/03/27/%e7%be%a4%e6%99%96%e5%a5%97%e4%bb%b6%ef%bc%9anvidiaruntimelibrary_%e5%bc%80%e5%90%af%e4%bd%a0%e7%be%a4%e6%99%96%e7%9a%84%e7%a1%ac%e4%bb%b6%e8%a7%a3%e7%a0%81%ef%bc%88%e6%94%af%e6%8c%81ds918-920-923/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">cb804e92a0a2b9e661679179d1bf3919</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=272</link>
				<pubDate>Sat, 25 Mar 2023 00:44:22 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=272" rel="nofollow ugc">黑苹果安装教程所需工具下载</a></strong>1.Python：https://www.python.org    2.Rufus：https://rufus.ie    3.OpenCore：https://dortania.github.io/OpenCore-Install-Guide/    4.opencore核心<a href="https://www.liuzi002.top/?p=272" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">960b6366c96c6dfff06fb11ff1d6a1ee</guid>
				<title>夜猫子—曾六在文章 群晖+vmm虚拟机套件安装Ubuntu详细教程（一） 中发布了一条评论</title>
				<link>https://www.liuzi002.top/2023/03/11/%e7%be%a4%e6%99%96vm%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%a5%97%e4%bb%b6%e5%ae%89%e8%a3%85ubuntu%e8%af%a6%e7%bb%86%e6%95%99%e7%a8%8b/#comment-5</link>
				<pubDate>Sat, 11 Mar 2023 18:01:33 +0800</pubDate>

									<content:encoded><![CDATA[<p>系统安装结束之后如果出现提示硬盘之类的错误，请在本站搜索《群晖安装Ubuntu详细教程（二）通用教程》  找到解决办法</p>
]]></content:encoded>
				
				
							</item>
					<item>
				<guid isPermaLink="false">ab52dcffb9162b1f937af71bc9bf1e10</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=257</link>
				<pubDate>Sat, 11 Mar 2023 17:56:36 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=257" rel="nofollow ugc">群晖安装Ubuntu详细教程（二）通用教程</a></strong><a href="https://www.liuzi002.top/?p=257" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/03/群晖安装Ubuntu详细教程（二）.jpg" /></a> 前言： 在上一篇中我们用群晖套件Virtual Machine Manager虚拟机安装了Ubuntu（没有安装的，可以点<a href="https://ymz666.top/2023/03/12/%e7%be%a4%e6%99%96%e5%ae%89%e8%a3%85ubuntu%e8%af%a6%e7%bb%86%e6%95%99%e7%a8%8b%ef%bc%88%e4%ba%8c%ef%bc%89%e9%80%9a%e7%94%a8%e6%95%99%e7%a8%8b/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">ef1ea765cb4479638f51eac42b14c415</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=227</link>
				<pubDate>Sat, 11 Mar 2023 12:37:43 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=227" rel="nofollow ugc">群晖+vmm虚拟机套件安装Ubuntu详细教程（一）</a></strong><a href="https://www.liuzi002.top/?p=227" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/03/群晖vm虚拟机套件安装Ubuntu详细教程.jpg" /></a> 前言： Ubuntu是基于De<a href="https://ymz666.top/2023/03/11/%e7%be%a4%e6%99%96vm%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%a5%97%e4%bb%b6%e5%ae%89%e8%a3%85ubuntu%e8%af%a6%e7%bb%86%e6%95%99%e7%a8%8b/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">6e36e2d91758e065371932bc07d3545e</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=211</link>
				<pubDate>Wed, 08 Mar 2023 15:41:20 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=211" rel="nofollow ugc">解决win系统无法播放HEVC（h.265）视频问题</a></strong><a href="https://www.liuzi002.top/?p=211" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/03/解决win系统无法播放HEVC（h.jpg" /></a> 前言：    高能效视频编码（HEVC） 也称为H. 265 和MPEG-H 第2 部分，是一项视频压缩标准，旨在作为MPEG-H 项目的一部分设计为广泛使用的高级视频编码（AVC、H.264 或MPEG-4 第10 部分）的继承者。 硬件加速对H. 265/HEV<a href="https://www.liuzi002.top/?p=211" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">73f75f8216f80b617629380d0d6d2901</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=196</link>
				<pubDate>Tue, 07 Mar 2023 16:10:08 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=196" rel="nofollow ugc">Docker 的用法整理有哪些内容？（转载）</a></strong><a href="https://www.liuzi002.top/?p=196" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/03/Docker-的用法整理有哪些内容？.jpg" /></a> 前言：  本文转载自知乎博主：大刚测试开发实战    做开发的应该很多人都知道Docker，就算是没有用过，应该也有所耳闻。这款开源于2013年的工具一经问世，便迅速火爆起来，在微服务、项目迁移、云等方面备受欢迎。如今它的github项目已经达到54k个star。    【docker 简介】  一、什么是docker  作者：大刚测试开发实战  链接：https://www.zhihu.com/question/485531437/answer/2727197193  来源：知乎  著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。    官方地址：https://docs.docker.com/  Docker 是一个基于go语言开发的开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的容器中，然后发布到任何流行的 Linux 机器上，也可以实现虚拟化。        二、docker核心概念  docker三大核心概念：镜像 Image、容器 Container、仓库 Repository       	镜像（Image）：Docker 镜像（Image），就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。   	容器（Container）：镜像（Image）和容器（Container）的关系，就像是面向对象程序设计中的类和实例一样，镜像是静态的定义，容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。基于镜像可以创建容器，同一个镜像可以创建多个容器；          docker  面向对象      容器  对象      镜像  类           	仓库（Repository）：仓库可看成一个代码控制中心，用来保存镜像。镜像存放在仓库中，可以从仓库中拉取。        三、docker架构及原理         	Docker 使用客户端-服务器 (C/S) 架构模式，使用远程API来管理和创建Docker容器。   	架构上可以分为客户端和服务端；   	Docker Daemon是docker的守护进程；   	containerd是容器运行的进程，是实现容器的核心；   	客户端通过内部的API和服务端的守护进程进行交互，守护进程再通过containerd分发到各个容器；    作者：大刚测试开发实战  链接：https://www.zhihu.com/question/485531437/answer/2727197193  来源：知乎  著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。          概念  说明      Docker 镜像(Images)  Docker 镜像是用于创建 Docker 容器的模板。基于镜像可以创建容器，同一个镜像可以创建多个容器；      Docker 容器(Container)  容器是独立运行的一个或一组应用，是镜像运行时的实体。      Docker 客户端(Client)  Docker 客户端通过命令行或者其他工具使用 Docker SDK (<a href="https://docs.docker.com/develop/sdk/" rel="nofollow ugc">https://docs.docker.com/develop/sdk/</a>) 与 Docker 的守护进程通信。      Docker 主机(Host)  一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。      Docker Registry  Docker 仓库用来保存镜像，可以理解为代码控制中的代码仓库。镜像仓库分为公共镜像仓库Docker Hub和一些私有化部署的仓库比如：Harbor（这两种类似于github和gitlab）Docker Hub(<a href="https://hub.docker.com" rel="nofollow ugc">https://hub.docker.com</a>) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库（Repository）；每个仓库可以包含多个标签（Tag）；每个标签对应一个镜像。通常，一个仓库会包含同一个软件不同版本的镜像，而标签就常用于对应该软件的各个版本。我们可以通过 : 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签，将以 latest 作为默认标签。      Docker Machine  Docker Machine是一个简化Docker安装的命令行工具，通过一个简单的命令行即可在相应的平台上安装Docker，比如VirtualBox、 Digital Ocean、Microsoft Azure。        四、docker轻量级的实现原理  docker容器本质上是宿主机的进程，Docker通过namespace实现了资源隔离，通过cgroups实现了资源限制，通过写时复制机制（copy-on-write）实现了高效的文件操作。    namespace资源隔离  linux内核提拱了6种namespace隔离的系统调用：          namespace  系统调用参数  隔离内容      UTS  CLONE_NEWUTS  主机名或域名 (since Linux 2.6.19)      IPC  CLONE_NEWIPC  信号量、消息队列和共享内存(since Linux 2.6.19)      PID  CLONE_NEWPID  进程编号(since Linux 2.6.24)      Network  CLONE_NEWNET  网络设备、栈、端口等(since Linux 2.6.24)      Mount  CLONE_NEWNS  挂载点（文件系统）(since Linux 2.6.24)      User  CLONE_NEWUSER  用户组和用户组(started in Linux 2.6.23 and completed in Linux 3.8)        五、docker的优缺点  1.优点     	更高效利用系统资源   	更快速的启动时间   	一致的运行环境   	持续交付和部署   	更轻松的迁移    2.缺点     	Docker是基于Linux 64bit的，无法在32bit的 linux/Windows/unix环境下使用   	Docker并非适合所有应用场景，Docker只能虚拟基于 Linux的服务   	Docker实例是无状态的，不会保存当前操作行为的数据：容器销毁后，再次创建容器不会保存之前的数据，一种方法是通过数据挂载技术将数据挂载到宿主机指定目录来解决此问题，另一种方法是通过docker commit命令来基于已有容器构建为新的镜像，从而达到环境持久化的目的。    【docker 安装与启动】  一、docker安装与启动  1.安装docker的几种方式  1）安装最新版本docker  ① 先卸载旧版本的docker    yum remove docker                     docker-client                     docker-client-latest                     docker-common                     docker-latest                     docker-latest-logrotate                     docker-logrotate                     docker-engine    作者：大刚测试开发实战  链接：https://www.zhihu.com/question/485531437/answer/2727197193  来源：知乎  著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。    ② 指定Docker下载源（可选，适用于首次安装）      yum install -y yum-utils  yum-config-manager &#8211;add-repo <a href="https://download.docker.com/linux/centos/docker-ce.repo" rel="nofollow ugc">https://download.docker.com/linux/centos/docker-ce.repo</a>    ③ 安装Docker（默认安装最新版本）      yum install -y docker-ce docker-ce-cli containerd.io          作者：大刚测试开发实战  链接：https://www.zhihu.com/question/485531437/answer/2727197193  来源：知乎  著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。    ④ 验证是否安装成功      docker version        2）安装指定版本的docker    yum list docker-ce &#8211;showduplicates | sort -r  # 查看所有可用版本  yum install docker-ce- docker-ce-cli- containerd.io  # 安装指定版本        3）通过脚本一键安装docker  脚本内容如下：      #!/bin/bash  echo &#8220;set default docker install repo&#8221;  yum install -y yum-utils  yum-config-manager &#8211;add-repo <a href="http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo" rel="nofollow ugc">http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</a>  echo &#8220;install docker &#8230;&#8221;  yum install -y docker-ce docker-ce-cli containerd.io  systemctl start docker  systemctl status docker    2.启动docker    systemctl start docker  # 启动服务  systemctl status docker  # 查看状态  systemctl stop docker  # 停止服务  systemctl restart docker  # 重启服务    二、创建第一个docker容器  1.创建容器  按照国际惯例，先运行一个hello-world的容器      docker run hello-world    # 如果网络等一切正常的话，会出现如下提示，表示容器已经创建成功  Unable to find image &#8216;hello-world:latest&#8217; locally  latest: Pulling from library/hello-world  2db29710123e: Pull complete   Digest: sha256:18a657d0cc1c7d0678a3fbea8b7eb4918bba25968d3e1b0adebfa71caddbc346  Status: Downloaded newer image for hello-world:latest    Hello from Docker!  This message shows that your installation appears to be working correctly.    To generate this message, Docker took the following steps:   1. The Docker client contacted the Docker daemon.   2. The Docker daemon pulled the &#8220;hello-world&#8221; image from the Docker Hub.      (amd64)   3. The Docker daemon created a new container from that image which runs the      executable that produces the output you are currently reading.   4. The Docker daemon streamed that output to the Docker client, which sent it      to your terminal.    To try something more ambitious, you can run an Ubuntu container with:   $ docker run -it ubuntu bash    Share images, automate workflows, and more with a free Docker ID:   For more examples and ideas, visit:   2.查看容器    docker ps -a  # 查看所有容器    # 创建成功，容器列表中就会有hello-world的容器，但名字不是hello-world，因为我们在运行容器时并未指定名称  CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES  a07f1a8ea1a4   hello-world   &#8220;/hello&#8221;   21 seconds ago   Exited (0) 20 seconds ago             adoring_chatterjee    三、卸载docker  1.常规方式卸载  ① 停止docker服务      systemctl stop docker    ② 搜索已经安装的docker安装包      yum list installed | grep docker  rpm -qa | grep docker  yum -y remove docker-ce.x86_64   yum -y remove docker-ce-cli.x86_64   yum -y remove containerd.io.x86_64    ③ 移除所有相关安装包      yum -y remove contained.io.x86_64    ④ 删除docker镜像及相关文件夹      rm -rf /var/lib/docker    2.脚本卸载  所谓的使用脚本安装和卸载，通俗理解就是把上述多个操作步骤的命令放在一个脚本中批量执行，内容如下：      #!/bin/bash  systemctl stop docker  yum -y remove docker-ce.x86_64  yum -y remove docker-ce-cli.x86_64  yum -y remove containerd.io.x86_64  rm -rf /var/lib/docker  rm -rf /etc/docker/daemon.json    【docker 常用操作命令】  一、镜像操作命令            命令  说明      pull  拉取镜像      search  搜索相关镜像      tag  重命名镜像      rmi  删除镜像      images 或 image ls  查看所有镜像      build  基于Dockerfile构建镜像      commit  基于已有容器构建镜像        1.拉取镜像  使用&#8221;docker pull 镜像名称&#8221;，拉取远程仓库的镜像到本地（先校验本地是否存在，本地不存在时再默认从官网拉取最新版本的镜像）  以busybox为例：  BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具，例如ls、cat和echo等等，还包含了一些更大、更复杂的工具，例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱，它集成压缩了 Linux 的许多工具和命令，也包含了 Linux 系统的自带的shell。      docker pull busybox  # 拉取镜像        在拉取镜像前，也可以通过docker search命令搜索不同类型的镜像      docker search busybox  # 搜索相关镜像        2.查看镜像  使用 &#8220;docker image ls&#8221; 或 &#8220;docker images&#8221; 命令查看本地已经存在的镜像      docker images  # 查看所有镜像  docker images | grep busybox  # 查看指定镜像        3.修改镜像名称  使用 &#8220;docker tag 原始镜像名称 新名称&#8221; 命令重命名镜像，如：docker tag busybox:latest mybusybox:V1.0，重命名镜像会新增一条镜像，相当于创建了一个副本，但ID相同。      docker tag busybox:latest mybusybox:V1.0        4.删除镜像  使用 &#8220;docker rmi 镜像名称&#8221; 命令删除无用镜像，通过镜像名称删除，只会删除指定名称的镜像；通过镜像ID删除，会删除所有ID相同的镜像。      docker rmi mybusybox:V1.0  docker rmi -f ff4a8eb070e1        二、容器操作命令  容器操作命令：          命令  说明      create  创建容器      run  运行容器，run = pull + create + start      exec&#8230;-it&#8230;sh  进入容器内部      start  启动容器      restart  重启容器      stop  停止容器      rm  删除容器      commit  基于已有容器构建镜像      ps  查看容器状态：docker ps -a：查看所有容器docker ps -l：查看最近操作的容器      logs  查看容器日志：docker logs 容器名：查看指定容器的运行日志docker logs -f 容器名：实时查看指定容器的运行日志        容器操作相关参数：          命令  说明      &#8211;name  指定容器名称：&#8211;name=容器名&#8211;name 容器名      -d  后台运行      -p  映射端口，宿主机端口:容器端口，例如：-p 3307:3306      -v  挂载目录到本地，宿主机目录:容器目录，例如：-v /usr/local/nginx:/usr/local/nginx      &#8211;restart  自动重启，例如：&#8211;restart=always，跟随docker服务的重启而重启        1.创建容器  docker create (&#8211;name=容器名) 镜像名，例如：      docker create &#8211;name=mybusybox busybox    2.查看容器状态    docker ps -a  # 查看所有容器  docker ps -a | grep mybusybox  # 过滤查看指定容器  docker ps -l  # 查看最近操作的容器    通过create命令创建完成后的容器是&#8221;Created&#8221;状态的，可以通过start命令来启动容器        3.启动容器    docker start mybusybox    4.进入容器  通过&#8221;docker exec -it 容器名 sh&#8221;命令进入容器内部，例如：      docker exec -it mybusybox sh    5.运行容器  docker run = docker pull + docker create + docker start      docker run &#8211;name=mynginx -d -p 81:80 nginx    6.停止容器  docker stop 容器名或容器ID，例如：      docker stop mybusybox  docker stop 6fbf5a7a580b    7.删除容器  docker rm 容器名或容器ID，删除前要先停止容器，例如：      docker stop mybusybox  docker rm mybusybox  docker rm 6fbf5a7a580b    8.查看容器日志     	docker logs 容器名或容器ID：以文件形式查看日志，类似 cat；   	docker logs 容器名或容器ID：实时查看日志，类似 tail -f；    例如：      docker logs sonic_sonic-server-controller_1  docker logs -f sonic_sonic-server-controller_1    9.基于已有容器构建为新的镜像模板      用法：docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]          OPTIONS  释义      -a  标注作者信息      -c  使用Dockerfile指令来生成镜像      -m  提交说明信息，类似于git commit -m &#8220;xxxx&#8221;      -p  在提交时，暂停容器        例如：当前有个需求，将当前服务器上正在运行的一个容器，无痕迁移到另一台服务器上运行。意味着需要执行以下步骤：  将当前正在运行的容器构建为新的镜像A&gt;&gt;将新镜像A的镜像文件复制到另一台服务器或直接将镜像A提交到镜像仓库&gt;&gt;在另一台服务器上将镜像A从镜像仓库下载下来&gt;&gt;基于镜像A创建容器并运行  ① 打包容器  为了便于演示，先将一个文件复制到已有容器内      docker cp jdk_install.sh mysql:/home    ② 查看容器内文件      docker exec -it mysql sh    可以看到，已经将jdk_install.sh文件复制到了mysql容器的/home目录下：        ③ 基于容器构建新的镜像      docker commit -a &#8220;chenjigang&#8221; mysql new-mysql    通过&#8221;docker images&#8221;命令查看当前镜像列表，可以看到名为new-mysql的镜像：        ④ 基于新镜像运行容器      docker run -d &#8211;name new-mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 new-mysql    ⑤ 查看容器内文件      docker exec -it new-mysql-container sh    通过下图可以看出，之前复制到容器内的jdk_install.sh文件，已经保存到镜像中、并跟随出现在新的容器内：        【docker 使用技巧】  一、更换镜像源  1.配置文件路径：/etc/docker/daemon.json，若不存在则新建此文件      {          &#8220;registry-mirrors&#8221;:[          &#8220;http://registry.docker-cn.com&#8221;,          &#8220;http://docker.mirrors.ustc.edu.cn&#8221;,          &#8220;http://hub-mirror.c.163.com&#8221;,          &#8220;http://cr.console.aliyun.com/&#8221;,          &#8220;https://8wb4g36l.mirror.aliyuncs.com&#8221;  ]  }        2.配置完成后重启docker服务      systemctl restart docker.service    二、更换存储目录  docker安装完成后，默认存储路径为/var/lib/docker。创建容器后，每个容器的数据卷容量上限与/var/lib/docker所在的挂载的磁盘大小有关。例如下图所示：挂载的磁盘大小为50GB，则docker容器数据卷上限就是50GB，如果有多个容器，则这些容器共享50GB的容量，而且同时也与挂载磁盘下的其他目录共享使用。那么如果运行的容器数量较多，或是遇到需要存储大量数据如gitlab这类容器，50G显然就有些捉襟见肘。此时可以通过修改docker存储路径的方式扩容容器的容量上限。特别提一句，docker存储路径最好尽早修改，这样可以避免后期因磁盘写满导致的各种容器运行异常问题。        三种方式修改docker存储路径，分别为：    1.方式一：修改docker配置文件  编辑docker配置文件      vi /usr/lib/systemd/system/docker.service    使用&#8221;&#8211;graph&#8221;或&#8221;-g&#8221;参数指定存储位置      ExecStart=/usr/bin/dockerd &#8211;graph /home/docker_home    修改完成后重新加载配置文件并重启docker服务      // reload配置文件   systemctl daemon-reload      // 重启docker  systemctl restart docker.service    2.方式二：创建daemon.json文件  docker1.12或以上版本，可以创建或修改daemon.json文件来指定存储位置。docker查看版本命令“docker version”      vi /etc/docker/daemon.json    在最后添加graph字段，定义docker目录      {          &#8220;registry-mirrors&#8221;:[          &#8220;http://registry.docker-cn.com&#8221;,          &#8220;http://docker.mirrors.ustc.edu.cn&#8221;,          &#8220;http://hub-mirror.c.163.com&#8221;,          &#8220;http://cr.console.aliyun.com/&#8221;,          &#8220;https://8wb4g36l.mirror.aliyuncs.com&#8221;  ],          &#8220;graph&#8221;: &#8220;/home/docker_home&#8221;  }      修改完成后同样需要重新加载配置文件、重启docker服务      systemctl daemon-reload  systemctl restart docker.service    3.方式三：创建软链接（推荐）  前两种方式适用于首次安装docker后没有pull过镜像、创建过容器。即使修改了存储路径，因为没有镜像和容器，所以也不会产生任何影响。  创建软链接的方式，适用于已经创建过容器、并且容器已经产生数据的情况。这种方式可以避免对镜像及现有容器数据造成破坏，以及更改存储路径后找不到数据的情况。具体步骤如下：  ① 查看docker路径  默认情况下Docker的存放位置为：/var/lib/docker，也可以通过如下命令查看docker存储路径      docker info | grep &#8220;Docker Root Dir&#8221;    ② 停掉docker服务      systemctl stop docker    ③ 移动docker目录      mv /var/lib/docker /home/docker_home    ③ 创建软链接       	/home/docker_home为源文件目录，也就是新设置的docker存储目录   	/var/lib/docker为软链接目标目录，与此目录建立链接后，相当于原来的docker配置保持不变，但真正的存储目录是其背后所指向的/home/docker_home      ln -s /home/docker_home /var/lib/docker    ④ 启动docker服务      systemctl start docker    修改完成后，我们可以通过以下命令查看docker的存储目录：      docker info | grep &#8220;Root Dir&#8221;    # 修改成功会返回以下内容：  # Docker Root Dir: /home/docker_home    查看/var/lib/目录，docker目录是一个软链接，指向/home/docker_home，配置正确。        三、修改时区  1.创建容器时设置时区  创建时增加映射使用主机时区      -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime    2.创建容器后修改时区  ① 查看宿主机时区  通过date -R命令可以看出，宿主机的时区为东八区，查看/etc/localtime，可以看出localtime实际上是一个软链接，背后指向的是/usr/share/zoneinfo/Asia/Shanghai      [root@test_host home]# date -R  Thu, 08 Sep 2022 11:05:37 +0800  [root@test_host home]# ls -l /etc/localtime  lrwxrwxrwx. 1 root root 35 8月  29 17:17 /etc/localtime -&gt; ../usr/share/zoneinfo/Asia/Shanghai    ② 拷贝本地时区到docker容器内部      docker cp /usr/share/zoneinfo/Asia/Shanghai docker.ui:/etc/localtime    ③ 进入容器内部查看时区      docker exec -it docker.ui sh  # 进入docker.ui容器  ls /etc  # 查看/etc下是否存在已经复制的localtime文件  date -R  # 查看时区    通过下图可以看出，/etc下已经存在了宿主机复制过来的localtime文件，时区为东八区，已经修正。        四、拷贝文件  主要用到&#8221;docker cp&#8221;命令    1.从宿主机拷贝到容器  docker cp 宿主机文件路径 容器名:目录，例如：      docker cp redis_log mysql:/home    2.从容器内拷贝到宿主机  docker cp 容器名:文件路径 宿主机目录，例如：      docker cp mysql:/home/mayfly-go.sql /home/    五、常见问题解决  1.容器报错ipv4网络不可用  运行容器时报错  如果是容器运行直接报这个错， 解决方式：  ① 在宿主机上执行      echo &#8220;net.ipv4.ip_forward=1&#8221; &gt;&gt;/usr/lib/sysctl.d/00-system.conf      ② 重启network和docker服务      systemctl restart network  systemctl restart docker    创建容器时报错  “WARNING: IPv4 forwarding is disabled. Networking will not work.”        如果是运行镜像、创建容器的时候报这个错，则直接重启docker服务：      systemctl restart docker    【docker 一键快速搭建环境】  1.docker一键搭建Jenkins    # 拉取镜像  docker pull jenkins  # 运行容器  docker run -d &#8211;name=jenkins -v /home/jenkins:/var/jenkins_home -p 8088:8080 -u root &#8211;restart=always jenkins    前台访问：http://192.168.1.122:8088/  注意：首次访问需输入密码，宿主机上密码文件路径为 /home/jenkins/secrets/initialAdminPassword，或是进入容器内查看：/var/jenkins_home/secrets/initialAdminPassword                初始化完成后，原始密码文件自动删除：        2.docker一键搭建Gitlab    # 拉取镜像  docker pull gitlab/gitlab-ce  # 创建gitlab环境变量  export GITLAB_HOME=/home/gitlab  # 运行容器  docker run -d &#8211;name=gitlab -u root &#8211;restart=always -v $GITLAB_HOME/config:/etc/gitlab -v $GITLAB_HOME/logs:/var/log/gitlab -v $GITLAB_HOME/data:/var/opt/gitlab -p 443:443 -p 8081:80 -p 2222:22 gitlab/gitlab-ce    <a href="http://192.168.1.122:8081/" rel="nofollow ugc">http://192.168.1.122:8081/</a> 首次访问会提示修改密码，用户名为 root        3.docker一键搭建Nginx  官网地址：https://hub.docker.com/_/mysql      # 拉取镜像  docker pull nginx  # 运行容器  docker run -d &#8211;name mynginx -p 81:80 nginx    浏览器端访问：http://192.168.1.123:81/        4.docker一键搭建MySQL  官网地址：https://hub.docker.com/_/mysql      # 拉取镜像  docker pull mysql  # 运行容器  docker run -d -e MYSQL_ROOT_PASSWORD=123456 &#8211;name=mymysql -p 3307:3306 mysql  # 进入mysql容器  docker exec -it mysql sh  # 登录mysql  mysql -uroot -p123456    mysql命令行操作        使用工具连接mysql数据库        5.一键搭建RabbitMQ    # 拉取镜像  docker pull rabbitmq:3.7-management  # 启动容器  docker run &#8211;name=rabbitmq -d &#8211;restart always -p 15672:15672 -p 5672:5672 -v /home/rabbitmq:/var/lib/rabbitmq rabbitmq:3.7-management    注：如果docker pull rabbitmq后面不带management，启动rabbitmq后是无法打开管理界面的，所以我们需要下载带management插件的rabbitmq  浏览器端访问：http://192.168.1.123:15672/，登录账号和密码都是：guest        【dockerfile 定制镜像】  一、Dockerfile是什么？  1.简介  Dockerfile 是一个用来构建镜像的文本文件，文本内容包含了一条条构建镜像所需的指令和说明。        2.作用  Dockerfile的作用：定制镜像，所谓定制镜像，就是以一个镜像为基础，在其上进行定制，丰富功能、提前作一些配置等。    二、Dockerfile常用指令  1.常用指令释义        指令  说明      FROM  指定基础镜像      MAINTAINER  增加说明信息，如维护者姓名邮箱等，非必须      RUN  执行具体的linux命令（用于构建镜像时执行相关的命令）      USER  基于哪个用户运行容器      ADD  将本地的文件添加到镜像内（支持正则表达式拷贝，支持更多的文件类型的拷贝，如网络文件的下载后拷贝，ADD <a href="http://xxxx/test.tar.gz" rel="nofollow ugc">http://xxxx/test.tar.gz</a> /test/）      COPY  将本地文件拷贝到镜像内（只支持基本的文件、文件夹的拷贝，推荐使用COPY），最好将要拷贝的文件置于Dockerfile同一目录下      WORKDIR  目录切换指令，类似于linux的cd命令WORKDIR /home/jenkins_home/conf 等同于以下指令：WORKDIR /homeWORKDIR jenkins_home/conf      EXPOSE  指定容器监听的端口，仅作为说明，不会真正生效，还是需要使用docker run -p参数进行端口映射      CMD  类似于RUN指令，区别与CMD是在启动容器时执行相关的命令，CMD echo &#8220;hello world&#8221; 或 [&#8216;ECHO&#8217;,&#8217;hello world&#8217;]都可以，推荐使用后者列表形式      ENTRYPOINT  指定ENTRYPOINT参数后，使用docker run xxxx 启动容器时，docker run 后面的参数不会被覆盖      ENV  指定运行容器时的环境变量，格式为 KEY=VALUE或KEY VALUE，如ENV VERSION=2.0在后续指令中可以使用$VERSION进行替换2.0      VOLUME  数据栈声明，做匿名挂载用，假设指令为VOLUME /usr/local，则在启动容器后会在服务器上docker默认路径/var/lib/docker/volumes/下自动生成一个文件夹，用于挂载/usr/local，常用于执行docker run命令时忘记指定-v 参数，从而自动保存一些重要的数据时使用        2.&#8217;CMD&#8217;、&#8217;ENTERPOINT&#8217;、&#8217;docker run xxx&#8217; 三者之间的区别与联系     	若指定了CMD [&#8216;ECHO&#8217;,&#8217;hello world&#8217;]，同时使用了docker run -p 8080:80 xxx，则docker run 后面的参数会覆盖CMD后面的指令；   	若指定了ENTRYPOINT [&#8216;nginx&#8217;]，同时使用了docker run -p 8080:80 xxx，则会把docker run 后面的参数作为参数传递给ENTRYPOINT，与ENTRYPOINT后面的参数拼接起来；   	若CMD [&#8216;ECHO&#8217;,&#8217;hello world&#8217;]，同时指定了ENTRYPOINT [&#8216;nginx&#8217;]，则会把CMD后的参数作为参数传递给ENTRYPOINT，与ENTRYPOINT后面的参数拼接起来；    总结：CMD相对更为灵活，用户可以通过docker run 更改dockerfile中CMD的指令，而ENTRYPOINT则更为单一，使用docker run命令行参数启动容器时无法修改dockerfile中ENTRYPOINT的指令；    3.Dockerfile示例  自定义Dockerfile  如下，我们制作一个简单的Dockerfile用来构建镜像，它是基于centos7镜像。其中，执行一些简单的命令，如输出信息、创建文件夹，另外提前添加文件到镜像目录、切换目录，最后安装一个工具，执行查看网卡命令：      # 基于centos7镜像  FROM centos:7    # 维护者信息  MAINTAINER &#8220;chenjigang&#8221;    # 基于root用户运行容器  USER root    # 运行命令  RUN echo &#8220;test dockerfile&#8230;&#8221;  RUN mkdir -p /home/docker_home    # 本地复制文件到镜像内  COPY docker_install.sh /home/docker_home/docker_install.sh    # 切换目录  WORKDIR /home/docker_home  RUN ls -al    RUN yum install -y net-tools  RUN ifconfig    mysql示例  下图是MySQL的官方镜像的dockerfile，也是用到了上面介绍的各个命令，将其有机地结合，例如：一开始会添加一个文件&gt;&gt;然后运行bash&gt;&gt;创建用户和用户组&gt;&gt;中间设置环境&gt;&gt;设置数据目录&gt;&gt;最后启动mysqld，从而实现MySQL的构建：        三、从Dockerfile构建镜像  Dockerfile 创建完成后，可以使用 docker build 命令根据 Dockerfile 构建一个镜像。Docker build常用的指令包括两个参数：       	-t 指定镜像的名字   	-f 显示指定构建镜像的 Dockerfile 文件，若当前操作目录与Dockerfile文件处于同一目录，则使用.也可以，否则需使用 -f 参数指定Dockerfile文件路径（注：Dockerfile 命名为非固定命名，可更改）    基于上面第一个Dockerfile提交构建：      # 运行当前目录下的Dockerfile文件，生成一个名为mycentos7的镜像  docker build -t mycentos7 .    如下图所示，运行docker build构建镜像命令后，正在按照上述自定义的Dockerfile中的步骤顺序执行：        从下图可以看出，已经成功构建了一个镜像：mycentos7:latest        查看镜像列表，存在新构建的镜像mycentos7：        基于mycentos7镜像创建一个容器：      docker run -it &#8211;name mycentos7 mycentos7:latest sh    此时，启动容器，进入镜像shell环境内会发现Dockerfile文件中定义的命令已生效：       	指定的docker_install.sh已复制到mycentos镜像的/home/docker_home文件夹下；   	net-tools工具已提前安装成功，&#8221;ifconfig&#8221;命令可以正常执行；        四、Dockerfile构建镜像原理   每多一行命令，镜像就会多一层        【docker-compose 容器编排】  一、Docker-Compose介绍  1.简介  Docker-Compose项目是Docker官方的开源项目，负责实现对Docker多容器编排管理系统。使用 Docker-compose，可以用一个 YAML 文件定义一组要启动的容器，以及容器运行时的属性。 Docker-Compose的工程配置文件默认为docker-compose.yml  项目地址：https://github.com/docker/compose        2.Docker-Compose前世今生  Docker Compose 的前身是 Fig，现阶段 Docker Compose 是 Docker 官方的单机多容器管理系统（不能跨机器），它本质是一个Python 脚本，它通过解析用户编写的 yaml 文件，调用 Docker API 实现动态的创建和管理多个容器。    二、Docker-Compose安装  1.使用curl命令安装（推荐）    # 下载 Docker Compose 的安装包  sudo curl -L &#8220;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&#8221; -o /usr/local/bin/docker-compose  # 修改 Docker Compose 执行权限  sudo chmod +x /usr/local/bin/docker-compose        2.使用PIP安装  需提前安装Python环境      pip install -U docker-compose    三、Docker-Compose常用指令组成  Docker Compose 文件主要分为三部分： services（服务）、networks（网络） 和 volumes（数据卷）        1.常用指令说明        指令  说明      image  镜像名称，基于哪个镜像，使用现有的镜像      build  使用自定义的镜像，若当前docker-compose.yml和Dockerfile在同一路径下，则build的键值用 . 也可以，若不在同一路径下，或Dockerfile文件不是用的默认名称Dockerfile，则需指定Dockerfile的路径      command  启动镜像时用的命令，类似于Dockerfile中的CMD指令      container_name  容器名称      depends_on  指定服务启动顺序，如存在多个服务nginx、db、Jenkins时，则在Jenkins服务下定义depends_on: db，会优先启动db服务      links  解决容器之间的链接，使用db可以链接到db服务，使用别名test_db也可以      ports  指定端口，端口映射时使用，类似于docker命令中的-p参数      volumes  数据挂载时使用，类似于docker命令中的-v参数        2.docker-compose.yml示例  支持四种命名格式：docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml  sonic私有云真机平台：http://192.168.1.20:3000/Index/Devices  下面就以前面分享过的《开源云真机平台-Sonic应用实践》中的sonic服务的docker-compose.yml为例，一起来看看上述指令的用法：      version: &#8216;3&#8217;  # 版本  services:  # 服务，    sonic-server-eureka:  # 容器名(sonic微服务注册中心)      image: &#8220;registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-eureka:v1.5.0-release&#8221;      hostname: sonic-server-eureka      environment:  # 环境，读取配置文件中eureka的用户名密码等        &#8211; SONIC_EUREKA_USERNAME        &#8211; SONIC_EUREKA_PASSWORD        &#8211; SONIC_EUREKA_PORT        &#8211; SONIC_EUREKA_HOST=sonic-server-eureka      volumes:  # 目录映射        &#8211; ./logs/:/logs/      networks:  # 网络名        &#8211; sonic-network      ports:  # 端口映射        &#8211; &#8220;${SONIC_EUREKA_PORT}:${SONIC_EUREKA_PORT}&#8221;    sonic-server-gateway:  # 容器名(sonic微服务网关)      image: &#8220;registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-gateway:v1.5.0-release&#8221;      hostname: sonic-server-gateway      environment:  # 同样也是一些环境配置，用于和eureka容器通信        &#8211; SONIC_EUREKA_USERNAME        &#8211; SONIC_EUREKA_PASSWORD        &#8211; SONIC_EUREKA_PORT        &#8211; SONIC_EUREKA_HOST=sonic-server-eureka        &#8211; SECRET_KEY        &#8211; EXPIRE_DAY      volumes:        &#8211; ./logs/:/logs/      depends_on:  # 指定服务启动顺序，先启动sonic-server-eureka容器        &#8211; sonic-server-eureka      networks:  # 网络，各个容器必须处于同一网络下才能相互通信        &#8211; sonic-network      restart: on-failure    sonic-server-controller:  # 容器名      image: &#8220;registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-controller:v1.5.0-release&#8221;      environment:  # 环境配置，读取数据库、账号等配置        &#8211; SONIC_EUREKA_USERNAME        &#8211; SONIC_EUREKA_PASSWORD        &#8211; SONIC_EUREKA_PORT        &#8211; SONIC_EUREKA_HOST=sonic-server-eureka        &#8211; MYSQL_HOST        &#8211; MYSQL_PORT        &#8211; MYSQL_DATABASE        &#8211; MYSQL_USERNAME        &#8211; MYSQL_PASSWORD        &#8211; SONIC_SERVER_HOST        &#8211; SONIC_SERVER_PORT        &#8211; SECRET_KEY        &#8211; EXPIRE_DAY        &#8211; REGISTER_ENABLE        &#8211; NORMAL_USER_ENABLE        &#8211; LDAP_USER_ENABLE        &#8211; LDAP_USER_ID        &#8211; LDAP_BASE_DN        &#8211; LDAP_BASE        &#8211; LDAP_USERNAME        &#8211; LDAP_PASSWORD        &#8211; LDAP_URL      networks:        &#8211; sonic-network      volumes:        &#8211; ./logs/:/logs/      depends_on:        &#8211; sonic-server-eureka      restart: on-failure    sonic-server-folder:      image: &#8220;registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-server-folder:v1.5.0-release&#8221;      environment:        &#8211; SONIC_EUREKA_USERNAME    通过上述配置我们能够发现，docker-compose.yml这个配置文件，就是由前面我们介绍的一个个指令按照一定的格式、顺序、规则进行排列、相结合组成，从而实现不同容器的排编，相互通信，进而实现强大的功能。    四、Docker-Compose操作命令  用法：  Define and run multi-container applications with Docker.    Usage:  docker-compose [-f &#8230;] [&#8211;profile &#8230;] [options] [&#8211;] [COMMAND] [ARGS&#8230;]  docker-compose -h|&#8211;help  1.docker-compose操作命令  官方所有指令      常用指令        指令  说明      up  启动容器编排（前提是当前目录存在docker-compose.yml文件）      down  删除容器编排，适用于docker-compose.yml文件发生变更、或安装出错时的卸载重装      ps  查看所有服务状态，类似于docker ps -a      start  启动服务      stop  指定服务启动顺序，如存在多个服务nginx、db、Jenkins时，则在Jenkins服务下定义depends_on: db，会优先启动db服务      logs  查看docker-compose操作日志        2.docker-compose操作参数  官方所有选项      常用选项        参数  说明      -f  指定yml文件启动，当前目录下不存在docker-compose.yml文件时使用      -d  后台运行        3.容器编排操作实践  启动容器编排    docker-compose up # 启动容器（前提是当前目录存在docker-compose.yml文件）  docker-compose -f docker-compose.yml up -d  # 指定yml文件启动并设置后台运行    启动容器编排：创建网络&gt;&gt;创建并运行各个容器&gt;&gt;各个容器之间建立连接        在使用&#8221;docker-compose up&#8221;和&#8221;docker-compose down&#8221;命令时，若当前目录下不存在以下四种中的任一格式文件：docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml，或也未使用-f参数指定其他文件时，会报错提示：        删除容器编排    docker-compose down    删除容器编排：停止各个容器&gt;&gt;移除各个容器&gt;&gt;删除容器创建的网络        查看容器状态    docker-compose ps  # 查看所有服务状态，类似于docker ps -a        启动服务    # docker-compose start  启动所有服务  # docker-compose start [SERVICE&#8230;]    启动指定服务  docker-compose start        停止服务    # docker-compose stop    停止所有服务  # docker-compose stop [options] [SERVICE&#8230;]    停止指定服务  docker-compose stop        与down命令不同，stop只会停止相关容器，但不会删除相关容器        查看日志    docker-compose logs    五、利用Docker Compose搭建wordpress博客系统  前面对一些常用指令作了说明，以及通过sonic前后台服务的docker-compose.yml案例对容器编排作了简单介绍，下面我们结合一个docker-compose搭建WordPress的案例来搭建我们自己的容器编排服务，官方配置文件内容如下：    1.配置docker-compose.yml  官网地址：https://docs.docker.com/compose/wordpress/      services:    db:      # We use a mariadb image which supports both amd64 &amp; arm64 architecture      image: mariadb:10.6.4-focal      # If you really want to use MySQL, uncomment the following line      #image: mysql:8.0.27      command: &#8216;&#8211;default-authentication-plugin=mysql_native_password&#8217;      volumes:        &#8211; db_data:/var/lib/mysql      restart: always      environment:        &#8211; MYSQL_ROOT_PASSWORD=somewordpress        &#8211; MYSQL_DATABASE=wordpress        &#8211; MYSQL_USER=wordpress        &#8211; MYSQL_PASSWORD=wordpress      expose:        &#8211; 3306        &#8211; 33060    wordpress:      image: wordpress:latest      volumes:        &#8211; wp_data:/var/www/html      ports:        &#8211; 88:80      restart: always      environment:        &#8211; WORDPRESS_DB_HOST=db        &#8211; WORDPRESS_DB_USER=wordpress        &#8211; WORDPRESS_DB_PASSWORD=wordpress        &#8211; WORDPRESS_DB_NAME=wordpress  volumes:    db_data:    wp_data:    【注意】       	上述配置内容是可以自由修改的，并不一定要按照它的来，比如我本地就有MySQL，那就不需要再配置一个mysql或mariadb的容器   	yml文件中冒号后面要带空格，严格规范格式    2.查看容器状态    docker-compose ps -a        3.前端访问  启动docker-compose，各个容器处于up状态，此时就可以访问前端页面，http://192.168.1.123:88/，会先进行安装配置，如：设置数据库、站点取名        个人博客主页如下：        因为我是内网服务器，只能在局域网内访问，公网无法访问。如果你有一台带有公网的云服务器，如阿里云，那么妥妥的就可以搭建自己的个人网站了，这种对服务器要求不高，入门级的就可以。现在的云服务器都挺便宜，一年才几十块钱，像阿里云服务器个人用户可以免费体验一个月。关于WordPress详细搭建方法可以参考我前面介绍的《用2核2G的入门级云服务器搭建WordPress博客系统》    【docker 镜像仓库】  在前面的文章中，我们介绍了如何定制镜像、容器编排，但仿佛对镜像管理并没有提及，那么镜像文件我们是否可以像管理代码一样实现push、pull的操作呢？答案是有的，docker-hub就是一款公共仓库，在上面可以搜索到别人创建好的各种各样的镜像，以及管理自己的镜像；Harbor是一款私有化镜像仓库，我们可以把镜像上传上去，同一内网下的其他用户均可以下载使用，因为是部署在自己的服务器，因此对于安全性这方面更有保障。docker-hub和Harbor的关系我们可以类比成GitHub和Gitlab。    一、公共镜像仓库Docker-hub  1.docker-hub简介  公共镜像仓库一般是 Docker 官方或者其他第三方组织（阿里云，腾讯云，网易云等）提供的，允许所有人注册和使用的镜像仓库。Docker Hub 是全球最大的镜像市场，目前已经有超过 10w 个容器镜像。        2.提交镜像到仓库  具体步骤：注册账号&gt;&gt;登录&gt;&gt;创建仓库&gt;&gt;&gt;linux命令行docker登录&gt;&gt;修改镜像名称(保持与仓库名称一致)&gt;&gt;提交镜像到仓库    ① 创建镜像仓库  类似于github上创建代码仓库，分为public（公开的，互联网可见）和private（受保护的，尽自己可见）两种。            ② Linux命令行登录Docker账号    docker login  # 登录docker-hub        ③ 修改镜像名称，保持与镜像仓库一致    docker tag joinsunsoft/docker.ui:latest chenjigang/auto-test:v1.1        ④ 提交镜像到公共仓库    docker push chenjigang/auto-test:v1.1        ⑤ 查看镜像仓库      二、私有化镜像仓库Harbor  1.Harbor简介  Harbor是由VMware公司开源的企业级的Docker Registry管理项目，它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。        作为一个企业级私有 Registry 服务器，Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制，镜像全部保存在私有 Registry 中， 确保数据和知识产权在公司内部网络中管控。另外，Harbor 也提供了高级的安全特性，诸如用户管理，访问控制和活动审计等。       	基于角色的访问控制 &#8211; 用户与 Docker 镜像仓库通过 “项目” 进行组织管理，一个用户可以对多个镜像仓库在同一命名空间（project）里有不同的权限。   	镜像复制 &#8211; 镜像可以在多个 Registry 实例中复制（同步）。尤其适合于负载均衡，高可用，混合云和多云的场景。   	图形化用户界面 &#8211; 用户可以通过浏览器来浏览，检索当前 Docker 镜像仓库，管理项目和命名空间。   	AD/LDAP 支持 &#8211; Harbor 可以集成企业内部已有的 AD/LDAP，用于鉴权认证管理。   	审计管理 &#8211; 所有针对镜像仓库的操作都可以被记录追溯，用于审计管理。   	国际化 &#8211; 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。   	RESTful API &#8211; RESTful API 提供给管理员对于 Harbor 更多的操控，使得与其它管理软件集成变得更容易。   	部署简单 &#8211; 提供在线和离线两种安装工具， 也可以安装到 vSphere 平台 (OVA 方式) 虚拟设备。    gitee地址：https://gitee.com/project_harbor/harbor?utm_source=alading&amp;utm_campaign=repo    2.Harbor搭建  安装说明： Harbor的所有服务组件都是在Docker中部署的，所以官方安装使用Docker-compose快速部署，所以需要安装 Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本，所以就要求Docker版本不小于1.10.0， Docker-compose版本不小于1.6.0。        ① 下载并解压安装包  在线下载：      wget <a href="https://github.com/goharbor/harbor/releases/download/v2.2.2/harbor-online-installer-v2.2.2.tgz" rel="nofollow ugc">https://github.com/goharbor/harbor/releases/download/v2.2.2/harbor-online-installer-v2.2.2.tgz</a>  tar -xvf harbor-online-installer-v2.2.2.tgz    ② 编辑配置文件    cp harbor.yml.tmpl harbor.yml  # 复制一份harbor.yml文件  vi harbor.yml    按照如下内容编辑：       	hostname改为本机ip   	端口默认80，可以改为其他指定端口   	注释掉https的相关配置        ③ 准备安装环境    ./prepare  # 执行prepare脚本    执行完成后，本地会多一个docker-compose.yml文件和common目录        ④ 安装harbor    ./install.sh  # 安装harbor    安装过程中会自动下载harbor镜像并启动相关容器。    ⑤ 访问harbor  安装成功后，即可访问harbor：http://192.168.1.122:8087，其中：ip为本机ip，端口为配置文件harbor.yml中配置的端口。默认账号和密码为：admin Harbor12345        harbor.yml文件中可查看或修改密码            ⑥ 安装过程中常见问题及解决     	报错redis容器重复        原因：本地已存在redis容器，harbor无法启动redis容器  解决办法：修改harbor目录下docker-compose.yml中的redis容器名称，重新启动          docker-compose up -d    查看harbor各个容器状态：           	报错registry容器重复    若本地之前已存在registry容器时，harbor安装过程会报错，解决方案：删除原registry容器，重新执行./install.sh进行安装；若此方式仍报错，则执行docker-compose up -d启动各个服务；    3.推送本地镜像到Harbor  ① 创建项目      ② Docker登录  由于之前登录过docker-hub，所以再次使用“docker login”命令登录时，默认登录的还是docker-hub的地址。因此，如果想要登录harbor，需要在登录时指定登录地址。      docker login 192.168.1.122:8087    首次登录，根据提示输入harbor用户名及密码即可，与前端登录使用的账号密码一致。  由于我前面登录过一次这个地址，本地会保存认证记录，因此再次登录时无需输入用户名密码即可登录成功。        如遇以下报错：        则要在/etc/docker/daemon.json文件中将本机ip(端口非80时需要带上端口号)加入到insecure-registries列表中，并重载配置。      {          &#8220;registry-mirrors&#8221;:[          &#8220;http://registry.docker-cn.com&#8221;,          &#8220;http://docker.mirrors.ustc.edu.cn&#8221;,          &#8220;http://hub-mirror.c.163.com&#8221;,          &#8220;http://cr.console.aliyun.com/&#8221;,          &#8220;https://8wb4g36l.mirror.aliyuncs.com&#8221;  ],          &#8220;insecure-registries&#8221;:[&#8220;192.168.1.122:8087&#8221;],          &#8220;graph&#8221;: &#8220;/home/docker_home&#8221;  }          systemctl daemon-reload  systectl restart docker    再次登录后登录成功：        ③ 本地镜像打tag  镜像名称需要命名为：ip:端口号/项目名称/镜像名:tag名，才能上传到该指定项目下，例如rabbitmq镜像，则名称为：192.168.1.122:8087/harbor/rabbitmq:5.7.33  为了方便测试，我直接复制本地的一个镜像，并重新命名：      docker tag rabbitmq:3.7-management 192.168.1.122:8087/harbor/rabbitmq:3.7-management        ④ 推送本地镜像到Harbor    docker push 192.168.1.122:8087/harbor/rabbitmq:3.7-management        查看名为harbor的项目下，存在rabbitmq:3.7-management，测试成功。        ⑤ 从Harbor拉取镜像     	拉取镜像      docker pull 192.168.1.122:8087/library/mysql:5.7.33    从下图可以看出，MySQL镜像已经拉取成功        同时，Harbor管理端也能看到最新的拉取时间：           	创建容器      docker run -it -d -e MYSQL_ROOT_PASSWORD=123456 &#8211;name=mysql -p 3307:3306 192.168.1.122:8087/library/mysql:5.7.33        登录MySQL        【docker 可视化管理工具-DockerUI】  一、简介  DockerUI是一款开源的、强大的、轻量级的Docker管理工具。DockerUI覆盖了 docker cli 命令行 95% 以上的命令功能，通过可视化的界面，即使是不熟悉docker命令的用户也可以非常方便的进行Docker和Docker Swarm集群进行管理和维护。  DockerUI后端使用Go语言开发，前台框架使用CubeUI。通过Docker Restful API，经过Go语言编写的Proxy端， 实现和Docker Daemon进行通信，从而实现Docker的管理命令和维护命令。        官网：https ://github.com/gohutool/docker.ui    二、特征     	Docker主机管理管理 数据卷管理、镜像管理、容器管理、构建管理、仓库配置管理、网络配置管理   	Docker swarm集群管理 集群配置信息、节点管理、服务管理、任务管理、密码管理、配置管理   	任务安排 Docker任务调度、docker swarm任务调度    三、安装  1.常规方式安装  1）下载docker.ui源码    git clone <a href="https://github.com/gohutool/docker.ui.git" rel="nofollow ugc">https://github.com/gohutool/docker.ui.git</a>    2）安装golang运行环境  ① 创建go文件夹      cd /home  mkdir go    ② 下载go压缩包并解压缩   也可以通过wget命令下载：      wget <a href="https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz" rel="nofollow ugc">https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz</a>  tar -xvf go1.19.1.linux-amd64.tar.gz    ③ 添加到环境变量  编辑/etc/profile，添加如下内容：      export GO_HOME=/home/golang/go  export PATH=$PATH:$GO_HOME/bin    ④ 重载环境变量      source /etc/profile    ⑤ 验证是否安装成功      go &#8211;help    出现以下信息表示安装配置成功：        3）项目配置  进入docker.ui项目目录，执行以下命令      export GO111MODULE=on  export GOPROXY=&#8221;https://goproxy.cn,direct&#8221;  go mod tidy  go mod download  go build -o server .  # 执行完成后目录下会多出一个server文件    4）启动服务    ./server    2.通<a href="https://www.liuzi002.top/2023/03/08/docker-%e7%9a%84%e7%94%a8%e6%b3%95%e6%95%b4%e7%90%86%e6%9c%89%e5%93%aa%e4%ba%9b%e5%86%85%e5%ae%b9%ef%bc%9f%ef%bc%88%e8%bd%ac%e8%bd%bd%ef%bc%89/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">61a5e7f60e7ee453b173cd4f9c91cff1</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=176</link>
				<pubDate>Sun, 05 Mar 2023 23:33:18 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=176" rel="nofollow ugc">Jellyfin 服务部署手册（转载）</a></strong><a href="https://www.liuzi002.top/?p=176" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/03/jellyfin2.png" /></a> 记录部署 jellyfin 服务器步骤及填坑说明手册  部署  转为群晖的 UI 部署方案:Synology | Jellyfin    Docker 容器方案: Container | Jellyfin  &#x26a0;我这个部署在群晖上，支持硬件解码 , 你需要根据自身<a href="https://www.liuzi002.top/?p=176" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">51acb178a0d41fcf0cf7f600c553b75c</guid>
				<title>夜猫子—曾六创建了群组 服务器</title>
				<link>https://www.liuzi233.cn/%e5%8a%a8%e6%80%81/p/5/</link>
				<pubDate>Sun, 05 Mar 2023 20:43:21 +0800</pubDate>

				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">7181e25c04673442de2e823b2e50c60c</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=160</link>
				<pubDate>Sun, 05 Mar 2023 18:16:41 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=160" rel="nofollow ugc">ping 的 -i 参数啥意思啊？</a></strong><a href="https://www.liuzi002.top/?p=160" rel="nofollow ugc"><img loading="lazy" src="https://www.ymz666.top/wp-content/uploads/2023/03/images-1.png" /></a> Windows 的 Ping 命令语法中“ -i”是设定生存时间 默认情况下，ping 命令会发送多个回显请求，通常是四个或五个。显示每个回显请求的结果，显示请求是否收到<a href="" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">ebfd7bbbf08520508cc8d3fda767e52e</guid>
				<title>夜猫子—曾六发布了更新: 无聊的时候就要做点无聊的事。</title>
				<link>https://www.liuzi233.cn/%e5%8a%a8%e6%80%81/p/3/</link>
				<pubDate>Sun, 05 Mar 2023 18:07:29 +0800</pubDate>

									<content:encoded><![CDATA[<p>无聊的时候就要做点无聊的事。</p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">b713df6919b532f35aa545f01a232896</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://www.liuzi002.top/?p=153</link>
				<pubDate>Sun, 05 Mar 2023 17:57:32 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=153" rel="nofollow ugc">手把手教你在群辉里部署Jellyin属于自己的私人影院，附带pc、安卓（和tv版）、Mac、iOS安装包</a></strong><a href="https://www.liuzi002.top/?p=153" rel="nofollow ugc"><img loading="lazy" src="https://www.liuzi002.top/wp-content/uploads/2023/03/手把手教你在群辉里部署Jellyin.png" /></a> 前言：  Jellyfin是一套多媒体应用程序软件套装，指在组织、管理和共享数字媒体文件，是Emby的一个自由开源分叉。Jellyfin分为服务端和客户端应用程序，服务端应用程序安装在运行Microsoft Windows、MacOS、Linux等系统的服务器上或Docker上，客户端应用程序安装在智能手机、平板电脑、智能电视、网络机顶盒、电子游戏机或网页浏览器上。支持DLNA以及插有Chromecast的设备也能接收Jellyfin服务端发来的文件    一、写在最前面的废话  这里讲解两种方式在群辉部署Jellyfin  1、使用‘我不是矿神’的套件（在这里非常感谢矿神，万分感谢，让我们如此的方便）  2、使用Docker容器来部署  Ps：两种方式没有好坏之分，第一种是方便，就是方便，只要点两下就可以了，套件更新，我们也可以跟着更新Jellfin，但是它不能自定义修改端口及修改程序缓存的文件夹；而第二种，可以随时增加其他阵列里的文件夹、自定义访问端口也可以后面在Docker里修改程序的端口、文件夹及终端修改程序；    二、在套件中心安装Jellyfin      1、打开群辉的套件中心      2、点击设置      3、添加套件来源      4、群辉套件源是有分DSM6.x和DSM7.x版本的，注意不要添加错了  DSM6.x矿神SPK套件源：https://spk.imnks.com/  DSM7.x矿神SPK套件源：https://spk7.imnks.com/  填好后确认就可以了        而到了这里，我们的矿神套件源就添加好了  而DSM6.x的记得注意要添加下面这一步骤，DSM7.x的不用；  而DSM6.x的记得注意要添加下面这一步骤，DSM7.x的不用；  而DSM6.x的记得注意要添加下面这一步骤，DSM7.x的不用；        5、安装包下载过程可能会有点长，套件体积将近1G，网络不好的请耐心等待。          6、安装完毕，点击进入      7、设置Jellyfin，点击添加服务器      8、添加主机  输入群辉ip：8096端口，我的是192.168.50.107:8096 ，填好后点击连接        9、设置管理员的账号和密码      后面的就是设置语言和没媒体文件夹了，就算是跳过，后面也可以自己修改的    三、Docker部署Jellyfin  1、打开Docker      2、选择注册表搜索Jellyfin  不管选择下面的哪个版本都是可以的，第一个是官方的，但是基于国内的网络环境，所以我现在了第二个“nyanmisaka/jellyfin”，然后就是双击下载了        3-1、  在下载的过程中我们先创建jellyfin要用的文件夹，打开Flle Station，随便选择一个共享文件夹创建一个jellyfin文件夹，然后在里面再创建一个“config”和“media”这两个文件夹，我的习惯是容器程序在docker里创建这些缓存文件夹，方便后面查找        3-2、  创建好文件夹后，记得给共享文件夹“http”用户群组权限  ①右键点击共享文件夹选择属性        ②点击权限-新增，找到“http”用户组，给与它读和写的权限        ③把应用到这个文件夹、子文件夹及文件打上勾，然后保存        4、下载完成  选择映像，找到我们下载好的jellyfin映像包，双击启动开始部署        5、选择网络  如果你不用改端口的话，就选择和Docker Host相同的网络，不用的话可以选择另一个（只用DSM7.x的才要这样，DSM6.x的不用）        6、在这一步中，我们可以修改容器的名称，让我们在以后更好的找到它  点击启用自动重新启动，要是DSM6.x系统的点击“高级设置”DSM7.x的点击下一步        7、修改端口号  不修改的话就写8096，不然每次重启都会变，8096端口要是被占用，就修改成其他记得住的端口号        8、添加媒体文件夹  图中的docker/jellyfin 文件夹是需要提前创建的（名字和位置可以自选）,是用来存放配置文件的,装载为config文件夹。video 文件夹是存放视频的地方（这个根据个人实际情况而定），装载为media。       	/config   	/media    添加完成后点击下一步，点击完成            到此我们就在Docker部署好了jellyfin，因为我们是在Docker里部署的，所以在群辉的桌面里是找不到jellyfin的，这时我们就要手动输入群辉的ip加端口号（没改端口的就是8096，改了的话就是你自己修改的端口号）来进入jellyfin  我的是192.168.50.107:9900        后面的设置方式就和用套件安装的方式是一样的，添加服务器和设置管理员的账户、密码以及选择语言之类的    四、移动端、cp端安装包、硬解码、无法搜刮元数表等问题  1、安卓、pc、Mac、Android TV、iOS安装包  百度网盘链接：点击此处   提取码：1234  提取码：1234 （iOS的安装包没有在链接里面，iOS用户在APP Store里面搜索Jellyfin就能安装）    2、群辉硬件解码的问题  黑群辉中使用最多的能硬件解码的型号就是DS918+ 而使用DS3617xs的用户请记住，它不支持硬件解码，玩虚拟机的可以忽略这句话；  DS918+的用户想要了解自己的机子能不能硬件解码的可以看看    关于9代10代11代12代cpu安装DS918核显不显、不能硬解的说明（支持DSM6.X和DSM7.X） &#8211; GXNAS博客​wp.gxnas.com/7952.html  这个教程，这个博主讲解的非常详细  3、jellyfin缩列图不显、无法自动刮削元数表  jellyfin缩列图不显、无法自动刮削元数表，这看似两个问题，其实这是一个问题，第一是因为国内的网络原因，因为豆瓣刮削已经不能用了，所以刮削电影信息就落到了“The Movie Datadase”的头上，而这只是群辉DSM6.x系统能解决的问题DSM7.x系统版本可能还会有系统漏洞，或者应用是权限的问题  ①修复刮削网络  群辉打开控制面板-终端机-启动SSH功能        群晖打开SSH通过SSH获得ROOT权限，打开SHH端口后，用PUTTY打开群晖命令行界面，打开后先用administrator管理权限组的账号登录        登陆后运行 sudo -i 命令切换到root权限（输入密码时时看不到的）  获取ROOT权限之后输入：vi /etc/hosts（vi后面是空格）进入编辑hosts文件  按键盘A键进入编辑模式（下面显示–INSERT–），再修改内容  去到下面的空行，输入以下命令：    108.156.91.21 api.themoviedb.org    108.156.91.71 api.themoviedb.org    108.156.91.89 api.themoviedb.org    108.156.91.110 api.themoviedb.org    185.199.108.133 raw.githubusercontent.com    185.199.109.133 raw.githubusercontent.com    185.199.110.133 raw.githubusercontent.com    185.199.111.133 raw.githubusercontent.com  （最好是自己通过https://www.ipaddress.com首页，输入http://raw.githubusercontent.com或http://api.themoviedb.org获取真实IP地址）  编辑好后按键盘ECS（退出编辑模式）切换到键盘大写连续按两次&#8221;Z&#8221;，<a href="https://www.liuzi002.top/2023/03/06/%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e5%9c%a8%e7%be%a4%e8%be%89%e9%87%8c%e9%83%a8%e7%bd%b2jellyin%e5%b1%9e%e4%ba%8e%e8%87%aa%e5%b7%b1%e7%9a%84%e7%a7%81%e4%ba%ba%e5%bd%b1%e9%99%a2%ef%bc%8c/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">91cbef7f03ffaea2c54df8f96c02dd67</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://liuzi002.top/?p=136</link>
				<pubDate>Sun, 05 Mar 2023 09:00:37 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=136" rel="nofollow ugc">NASTool添加Telegram机器人</a></strong><a href="https://www.liuzi002.top/?p=136" rel="nofollow ugc"><img loading="lazy" src="https://www.ymz666.top/wp-content/uploads/2023/03/NASTool添加Telegram机器人主图）.jpg" /></a> 前言： 在NASTool里添加Telegram机器人发送影片姓名现自动搜索下载，以及通过菜单导航单控。  一、创建Telegram机器人  1-1、Telegram里面搜索 BotFather机器人 打开与它的聊天界面 机器人url:  https://t.me/BotFather 打开与它的聊天界面，不论是 Windows mac 还是<a href="" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
					<item>
				<guid isPermaLink="false">f126592611e3885b64d6b00fcc8eff05</guid>
				<title>夜猫子—曾六 发布了一篇新文章</title>
				<link>https://ymz666.top/?p=110</link>
				<pubDate>Fri, 03 Mar 2023 18:20:40 +0800</pubDate>

									<content:encoded><![CDATA[<p><strong><a href="https://www.liuzi002.top/?p=110" rel="nofollow ugc">史上最简单的黑群DSM7.x引导编译方法，识字就能操作！！！（黑群辉DSM6.x、7.x引导编译教程）</a></strong><a href="https://www.liuzi002.top/?p=110" rel="nofollow ugc"><img loading="lazy" src="https://ymz666.top/wp-content/uploads/2023/03/v2-4a88f098d801bb911295b0c4db85c3c1_1440w.jpg" /></a> 开发者是一位巴西人，在github上分享的源代码地址是：点击此处！！让黑群辉引导编译变得非常简单，真的是小学生看了都会 【编译要求】 掌握计算机基本操作，有耐心。 有同学举手说：“我看不懂英语。” 那么你会百度吗？ 会！ 好的，百度搜索栏输入“翻译”回车，会吗？ 会！ 那就开始吧 【编译前的准备工作】 由于需要在NAS的机器上进行引导的编译，请事先准一下： ※ 如果你决定使用物理机安装群晖系统的，那么需要把机器装好，包括键盘、鼠标、显示器、硬盘、网线等等，如果还有其他外设（比如：额外添加的网卡、扩展卡、阵列卡等）要装起来，让所有的硬件处于可以正常工作的状态，编译系统会自动检测你使用的硬件并且自动加载驱动进行编译； ※ 如果你决定使用虚拟机安装群晖系统的，那么需要配置好虚拟机，包括设置CPU、内存、存储大小等等，以及有直通硬盘、直通核显、直通网卡、直通扩展卡、直通阵列卡等外设的，全部设置好，编译系统会自动检测虚拟机的硬件信息并且自动加载驱动进行编译； ※ 如果你有科学出国的环境能正常访问github网站和google网站的，那是最好的，可以减少编译等待的时间。要是没有也可以编译，只需要耐心等就是了。 【编译步骤】 1、到【github】把编译引导需要用的文件下载到电脑上（不是在NAS这台机器）。截止2022年9月10日，github上最新的版本是v0.4-alpha7（如果将来作者更新，可以下载最新的版本，我看作者的发布日期，更新速度已经跟上群辉官网了），我下载的img文件，这个格式是通用的，物理机可以用，虚拟机也可以用。  2、下载后的文件名是arpl-0.4-alpha7.img.zip，这个是一个压缩包。  4、删除arpl-0.4-alpha7.img.zip，只留下arpl.img即可。   5、如果你是用物理机安装的，可以使用rufus写盘工具把arpl.img刷到U盘。如果是PVE虚拟机安装群晖的，可以上传arpl.img到PVE，用qm importdisk命令转换成群晖虚拟机的虚拟引导文件。如果是用ESXI或者VMware安装的群晖虚拟机，可以使用StarWind V2V Image Converter工具来转换格式。我是用ESXI虚拟机安装的，所以把arpl.img转成了arpl.vmdk和arpl-flat.vmdk。 6、虚拟机配置好了就打开虚拟机的电源。物理机安装的话，把刷好的U盘放到NAS主机上，开机进BIOS设置从U盘启动。编译系统启动后会显示以下的界面，直接按回车进入。  7、编译系统启动中，如果你的路由器已经开启DHCP的话，此时系统会自动去获取IP地址，请耐心等待。  当编译系统最下面一行显示有“root@”开头的时候，就表示已经启动好了，需要找出编译系统的IP地址。 7、当编译系统最下面一行显示有“root@”开头的时候，就表示已经启动好了，需要找出编译系统的IP地址。  8、在局域网另外一台电脑的浏览器（建议使用谷歌浏览器），打开编译系统显示的IP地址和端口，会显示以下界面。  在第一行“Choose a model”回车。  这时会显示出本机可编译黑群晖的型号，如果你的CPU比较老的话，有可能不会显示“DS918+”这个型号。  选择你想要编译的黑群晖型号，我这选择的是DS918+，用方向键选好以后按回车键。  在“Choose a Build Number”处回车。  选择你想要编译黑群晖的版本，我选择的是最新的7.1.1-42951版本，用方向键选择以后按回车键。  在“Choose a serial number”处回车。  选择“Generate a random serial number”回车的话，编译系统会随机生成一个序列号。如果你想使用自定义的序列号，可以选择“Enter a serial number”回车后输入你想要使用的序列号。我这里使用随机生成。  需要加载十代CPU核显驱动的，在“Addons”处回车。如果使用的CPU不是10代，此步骤跳过不做。 需要加载十代CPU核显驱动的，在“Add an addon”处回车。如果使用的CPU不是10代，此步骤跳过不做。  需要加载十代CPU核显驱动的，在“i915 Intel iGPU Drivers(10th Gen)”处回车。如果使用的CPU不是10代，此步骤跳过不做。  需要加载十代CPU核显驱动的，在这个界面直接回车就行（不要输入任何内容）。如果使用的CPU不是10代，此步骤跳过不做。。  在“Exit”处回车返回上级菜单。  在“Build the loader”处回车，开始编译。  编译过程中，界面上会有进度条在跑进度，请耐心等待，等待的时间视你的网络环境而定（如果有科学出国的环境，请把此IP地址放到强制代理名单，可以加快编译速度）。  引导编译完成后，系统会自动跳回这个界面，并且会多出一行菜单“Boot the loder”，在这行菜单上回车。  把NAS主机手动重启一次，编译好的引导就会自动启动，该项目编译出来的引导启动后显示的界面如下，会显示有：系统型号，系统版本，pid，vid，sn，mac等等。  在电脑上打开群晖助手，等待一段时间后，会搜索到DSM未安装的信息，IP地址、型号和版本与刚才编译的一致，这就对了。如果你的电脑搜索不出来的话，把电脑防火墙关掉后再试一下。  接下来的安装就不用我说了，能看到这里的应该都已经会安装了黑群辉系统的人了，下载对于的DS版本到群辉官网下载就可以了 现在已经可以安装黑群辉DSM7.1.1-4296<a href="https://ymz666.top/2023/03/04/%e5%8f%b2%e4%b8%8a%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84%e9%bb%91%e7%be%a4dsm7-x%e5%bc%95%e5%af%bc%e7%bc%96%e8%af%91%e6%96%b9%e6%b3%95%ef%bc%8c%e8%af%86%e5%ad%97%e5%b0%b1%e8%83%bd%e6%93%8d%e4%bd%9c/" rel="nofollow ugc">阅读更多</a></p>
]]></content:encoded>
				
									<slash:comments>0</slash:comments>
				
							</item>
		
	</channel>
</rss>