django 如何运行命令与docker保存数据在本地计算机上

zbsbpyhn  于 2023-03-09  发布在  Go
关注(0)|答案(4)|浏览(140)

我的目的是将Django应用(运行在Docker容器中)的数据直接转储到磁盘上,而不是转储到容器中。有什么想法吗?我尝试了以下方法:

docker exec -it app bash -c "python manage.py dumpdata > data.json"

而是将数据保存在容器内。

xv8emn3q

xv8emn3q1#

首先,使用-v option运行容器:

docker run -v $(pwd):/data-out <app-image>

这将把你的当前目录(pwd)Map到容器的/data-out目录(如果这个目录不存在,它将在容器内创建)。如果你愿意,你可以把$(pwd)修改为/something/else

第二个,执行您的命令:

docker exec -it app bash -c "python manage.py dumpdata > /data-out/data.json"

请注意,输出将转到data-out目录。

最后,在本地查看您的文件:

cat data.json
myzjeezk

myzjeezk2#

重定向docker命令(而非python)的输出。

docker exec -it app bash -c "python manage.py dumpdata" > data.json

UPD:如果manage.py在工作目录中,则还可以省略bash调用:

docker exec -it app python manage.py dumpdata > data.json
oyt4ldly

oyt4ldly3#

您可以在docker run命令中使用volume参数:

docker run -v /app/logs:/app/logs ...

参考:https://docs.docker.com/engine/reference/commandline/run/#volume

o4hqfura

o4hqfura4#

您可以在运行Docker run时使用卷

docker exec -it app bash -c "python manage.py dumpdata > /data/data.json" -v $pwd:/data

相关问题