Docker 本地映射:让容器与宿主机共享文件系统

引言

在使用 Docker 进行应用程序开发和部署时,有时候需要让容器与宿主机共享文件系统。这样可以方便在容器内部访问宿主机的文件,或者在宿主机上修改容器内部的文件。Docker 提供了本地映射功能,可以将宿主机的目录或文件与容器内部的目录或文件进行映射。本文将介绍 Docker 本地映射的使用方法,并给出示例代码。

Docker 本地映射的使用方法

Docker 提供了 -v--volume 参数来进行本地映射。该参数的使用方法为:

docker run -v <宿主机目录>:<容器目录> ...

其中,<宿主机目录> 是宿主机上的目录路径,<容器目录> 是容器内部的目录路径。这样,当容器运行时,宿主机的目录将会与容器内部的目录进行映射,实现共享文件系统的效果。

示例代码

下面是一个简单的示例,展示了如何在容器内部访问宿主机上的文件。

首先,创建一个名为 app.py 的 Python 脚本,内容如下:

# app.py
with open('/data/file.txt', 'r') as f:
    print(f.read())

这个脚本打开了宿主机上的 /data/file.txt 文件,并输出文件的内容。

接下来,创建宿主机上的文件 /data/file.txt,并写入一些内容。

然后,使用 Docker 运行这个 Python 脚本,并进行本地映射:

docker run -v /data:/data python:3.9 python /app.py

这个命令将宿主机的 /data 目录映射到容器内部的 /data 目录,并运行容器内部的 python /app.py 命令。

当容器运行时,它将会访问宿主机上的 /data/file.txt 文件,并输出文件的内容。

结论

通过 Docker 的本地映射功能,我们可以方便地让容器与宿主机共享文件系统。这在开发和部署应用程序时非常有用,能够提高开发和调试的效率。希望本文对你理解 Docker 本地映射有所帮助。

参考资料

  • [Docker Documentation: Bind mounts](