在卷的帮助下将文件夹作为参数传递给 Docker 容器
Passing folder as argument to a Docker container with the help of volumes
我有一个 python 脚本,它有两个参数 -input 和 -output,它们都是目录路径。我想首先知道这是否是 docker 的推荐用例,我还想知道如何通过指定自定义输入和输出文件夹来 运行 docker 容器docker 卷的帮助。
我的 post 与此类似:Passing file as argument to Docker container。
还是没能解决问题。
通常的做法是使用卷来保存数据或装载一些输入数据。例如,参见 postgres 图片。
docker run -d \
--name some-postgres \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /custom/mount:/var/lib/postgresql/data \
postgres
您可以看到如何通过 env var 设置数据目录的路径,然后在该路径上安装一个卷。所以产生的数据最终会在卷中。
您还可以在文档中看到有一个目录 /docker-entrypoint-initdb.d/
,您可以在其中安装输入脚本,运行 在第一个数据库设置中。
在你的情况下,它可能看起来像这样。
docker run \
-v "$PWD/input:/app/input" \
-v "$PWD/output:/app/output" \
myapp --input /app/input --output /app/output
或者您对两者使用相同的音量。
docker run \
-v "$PWD/data:/app/data" \
myapp --input /app/data/input --output /app/data/output
我有一个 python 脚本,它有两个参数 -input 和 -output,它们都是目录路径。我想首先知道这是否是 docker 的推荐用例,我还想知道如何通过指定自定义输入和输出文件夹来 运行 docker 容器docker 卷的帮助。 我的 post 与此类似:Passing file as argument to Docker container。 还是没能解决问题。
通常的做法是使用卷来保存数据或装载一些输入数据。例如,参见 postgres 图片。
docker run -d \
--name some-postgres \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /custom/mount:/var/lib/postgresql/data \
postgres
您可以看到如何通过 env var 设置数据目录的路径,然后在该路径上安装一个卷。所以产生的数据最终会在卷中。
您还可以在文档中看到有一个目录 /docker-entrypoint-initdb.d/
,您可以在其中安装输入脚本,运行 在第一个数据库设置中。
在你的情况下,它可能看起来像这样。
docker run \
-v "$PWD/input:/app/input" \
-v "$PWD/output:/app/output" \
myapp --input /app/input --output /app/output
或者您对两者使用相同的音量。
docker run \
-v "$PWD/data:/app/data" \
myapp --input /app/data/input --output /app/data/output