返回博客

如何在 Docker 容器与主机之间共享数据

如何在 Docker 容器与主机之间共享数据

介绍

通常,Docker 容器只运行特定的一段时间 – 即运行命令所需的时间。容器内可用的数据只能在运行期间从容器内部访问。

Docker 数据卷 可用于轻松访问文件并将其存储更长时间。例如,如果您有一个 Nginx Web 服务器,并且想要存储日志以进行审计,则可以使用 Docker 数据卷将容器中的日志存储在宿主机中。

在本教程中,您将学习如何在 Docker 容器内部与宿主机之间共享数据。 

前提条件

对于本教程,您需要满足以下前提条件:

步骤 1 – 绑定挂载数据卷

您可以在当前用户的家目录中创建一个名为 logs 的目录,并将其绑定挂载到 /var/log/nginx(在 Nginx 容器中),使用以下命令:

以下是关于该命令的更详细信息:

  • --name=nginx 为容器命名,以便于引用。
  • -d 参数使进程分离并在后台运行。
  • -v hostPath:containerPath 映射宿主机路径和容器路径以进行绑定挂载。
  • -p hostPort:containerPort 参数将容器的端口映射到宿主机端口。
  • nginx 在行尾是用于启动容器的镜像名称。
注意: 始终使用 / 或 ~/ 开头来表示 hostPath,否则 -v 参数会认为该路径是数据卷的名称,而不会进行绑定挂载。

步骤 2 – 访问宿主机上的数据

现在,您的服务器上运行着一个 Nginx 容器,并且服务器的 5000 端口映射到 Nginx 的 80 端口。您可以在浏览器中通过以下 URL 打开该端口:

nginx homepage

在 ~/logs 目录中,您将看到 access.log 和 error.log 文件。您可以使用 cat 命令查看日志:

您也可以检查宿主机上的日志目录 ~/logs 并找到 Nginx 的日志文件。此外,如果您在 logs 文件夹中进行任何更改,这些更改也会反映在容器的 /var/log/nginx 文件夹中。

结论

在本教程中,您学习了如何在 Docker 容器内部与宿主机之间共享数据。这在开发环境中至关重要,因为分析日志是调试的必经之路。

有关我们博客上关于 Docker 的更多资源,我们的博客,您可以查看以下内容:

祝您计算愉快!

author

Akshay Nagpal

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。