在持久性和非持久性 Docker 容器之间共享文件
Sharing a file between a persistent and a non persistent Docker Container
我正在使用非持久性的 Caprover with Docker to run a Django project (Django-Cookiecutter)。我也是 运行 同一台服务器上导入 csv 数据的持久性应用程序。我需要这两个应用程序来基本上共享一个文件。这是我想象的样子:
- 导入器应用程序导入 csv 数据并将其存储为特定文件夹中的 json 文件。
- Django 应用程序访问该文件夹中的 json 文件,并使用我编写的脚本将 json 导入数据库。
我正在努力了解如何从我的 django 应用程序访问包含 json 文件的导入器应用程序中的文件夹。有谁知道我如何在这两个 docker 容器之间实现这一点?
您可以通过mounting两个容器中的相同目录在两个容器之间共享一个目录或文件。这是一个简单的 docker-compose 示例,其中两个容器挂载相同的目录。然后第一个容器写入文件,第二个容器从中读取。
例子
version: '3'
services:
writer:
image: alpine
command:
[
"sh",
"-c",
"echo hello from writer >/shared-writer/hello.txt"
]
volumes:
- .:/shared-writer
reader:
image: alpine
depends_on:
- writer
command: [ "cat", "/shared-reader/hello.txt" ]
volumes:
- .:/shared-reader
通知:
- 它们都挂载当前目录。
- 第一个容器写入已安装卷内的文件。
- 第二个容器从已安装卷内的同一个文件中读取。
- 容器使用不同的挂载点(
/shared-writer
和 /shared-reader
)来证明主机中的同一目录可以挂载到容器中的不同位置。
输出
$ docker-compose up
Starting shared-mount-example_writer_1 ... done
Starting shared-mount-example_reader_1 ... done
Attaching to shared-mount-example_writer_1, shared-mount-example_reader_1
reader_1 | hello from writer
shared-mount-example_writer_1 exited with code 0
shared-mount-example_reader_1 exited with code 0
我正在使用非持久性的 Caprover with Docker to run a Django project (Django-Cookiecutter)。我也是 运行 同一台服务器上导入 csv 数据的持久性应用程序。我需要这两个应用程序来基本上共享一个文件。这是我想象的样子:
- 导入器应用程序导入 csv 数据并将其存储为特定文件夹中的 json 文件。
- Django 应用程序访问该文件夹中的 json 文件,并使用我编写的脚本将 json 导入数据库。 我正在努力了解如何从我的 django 应用程序访问包含 json 文件的导入器应用程序中的文件夹。有谁知道我如何在这两个 docker 容器之间实现这一点?
您可以通过mounting两个容器中的相同目录在两个容器之间共享一个目录或文件。这是一个简单的 docker-compose 示例,其中两个容器挂载相同的目录。然后第一个容器写入文件,第二个容器从中读取。
例子
version: '3'
services:
writer:
image: alpine
command:
[
"sh",
"-c",
"echo hello from writer >/shared-writer/hello.txt"
]
volumes:
- .:/shared-writer
reader:
image: alpine
depends_on:
- writer
command: [ "cat", "/shared-reader/hello.txt" ]
volumes:
- .:/shared-reader
通知:
- 它们都挂载当前目录。
- 第一个容器写入已安装卷内的文件。
- 第二个容器从已安装卷内的同一个文件中读取。
- 容器使用不同的挂载点(
/shared-writer
和/shared-reader
)来证明主机中的同一目录可以挂载到容器中的不同位置。
输出
$ docker-compose up
Starting shared-mount-example_writer_1 ... done
Starting shared-mount-example_reader_1 ... done
Attaching to shared-mount-example_writer_1, shared-mount-example_reader_1
reader_1 | hello from writer
shared-mount-example_writer_1 exited with code 0
shared-mount-example_reader_1 exited with code 0