weixin_42864674 2024-07-01 10:18 采纳率: 0%
浏览 110

搭建本地NVD Mirror库问题

你好:
一、搭建本地NVD Mirror库
1、搭建nvd库:

官方提供了对应jar包来作为mirror的服务,具体github地址:

https://github.com/stevespringett/nist-data-mirror/

1)下载release jar包,如需定制请自行改写代码

2)服务器上执行java -jar nist-data-mirror.jar ,改命令会把2002-最近一年的所有*.json.gz 和 *.meta 文件下载下来

3)搭建本地apache服务

使用官方docker镜像直接启动即可,具体命令:

docker run -dit --name mirror -p 30006:80 --mount type=bind,source=/opt/mirror-repo,target=/usr/local/apache2/htdocs sspringett/nvdmirror:latest

其中source为宿主机目录

这里面我执行到了第二部分,下载了所有的数据,然后第二步和第三步的关系是什么呢?是把所有的json.gz的数据放在/opt/mirror-repo 下面么?需要带目录呢?再就是 docker run 好像没有 -dit 和--mount 的命令

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-07-01 10:18
    关注

    引自免费微信小程序:皆我百晓生

    首先,让我们理解第二和第三步的关系。第二步是下载所有的NVD数据,而第三步是关于如何搭建一个本地的Apache服务来提供这些数据的访问。这里的docker run命令会启动一个Docker容器,这个容器运行着一个Apache服务器,并将你下载的NVD数据暴露出去,以便其他人可以通过Web访问这些数据。

    关于你的问题:

    1. 第二步和第三步的关系:第二步下载所有的NVD数据后,这些数据需要存放到一个目录中。第三步的Docker命令会将这个目录映射到Docker容器内的某个路径(这里是/usr/local/apache2/htdocs),并且启动一个Apache服务来提供这些数据。这样,你就可以通过浏览器或者其他HTTP客户端访问这些数据了。

    2. 是否需要带目录:是的,你需要指定正确的目录路径。在Docker命令中的--mount参数就是用来映射宿主机目录到Docker容器内的路径的。你需要确保下载的NVD数据存放在你在--mount参数中指定的宿主机目录中(这里是/opt/mirror-repo)。

    3. 关于docker run命令中的-dit--mount

      • -dit:这是两个参数的组合。-d表示在后台运行容器,并返回容器ID;-it则表示分配一个伪终端或终端,使你能够与容器进行交互。但在这种情况下,你可能不需要与容器交互,所以只用-d就可以了。
      • --mount:这是Docker的一个新特性(在较新版本的Docker中),用于挂载卷。这里它被用来挂载宿主机上的目录到容器内,使得Apache服务器可以访问你下载的NVD数据。

    基于上述解释,如果你已经下载了所有的NVD数据并存放于/opt/mirror-repo目录下,你可以直接使用给出的Docker命令来启动Apache服务,并让其他人通过Web访问这些数据。确保你的Docker版本支持--mount参数,如果不支持,你可能需要使用旧版的Docker命令来挂载卷,例如使用-v参数。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月1日