我有一个包含json文件的dockerVolume。我希望使用一些docker命令或运行Shell脚本来打印json

时间:2019-06-10 09:43:04

标签: docker containers

我有一个dockerVolume outputVolume,它有一个json文件。我正在使用任何docker命令或shell脚本来打印json文件以进行控制台。

我尝试“回显”文件。 尝试打开文件,不希望以任何方式增加docker大小。

2 个答案:

答案 0 :(得分:1)

首先要在容器中执行一些命令,您需要知道发行版基于什么以及必须在哪个shell上才能知道可用的命令。

假设您使用的是基于debian / ubuntu的映像,则可以执行某些命令,而无需通过运行docker exec在容器内部进行记录,例如:

docker exec <conainer id> <command>

如果您想查看容器内部生成的文件的内容,可以运行:

docker exec <continer id> cat <path to your file>

如果您想在容器内有一个交互式终端,可以运行:

docker exec -it <container id> /bin/bash

答案 1 :(得分:0)

您需要start a new container with the volume attached。请注意,/var/lib/docker中的内容通常被认为是“ Docker私有的”,您不应该直接访问它;还应注意,无需在绑定安装docker run -v选项的两侧使用相同的文件路径。

对于您评论中的示例,我可以写

docker run -v outputResultVolume:/data busybox cat /data/whatever.json

尽管Docker文档对命名卷非常热衷,但我通常发现主机绑定挂载在操作上更简单。 (对于数据库存储之类的东西,在开发环境中,您无需查看或备份卷文件,则命名卷可以正常工作。)如果您正在运行短暂的进程,而文件I / O是主要操作,您可能还会考虑OS本地打包系统(RPM,dpkg,Homebrew等)是否仍可以使可重现性地运行您的软件包而不增加任何这种操作复杂性。