将文件管道化为docker run

时间:2016-02-28 21:19:50

标签: docker pipe

作为run命令的一部分,我需要将文件或一些数据传输(注入)到docker中,并将其作为启动的一部分写入容器中的文件。有最佳实践方法吗?

我已经尝试过了。

cat data.txt |  docker run -a stdin -a stdout -i -t ubuntu /bin/bash -c 'cat >/data.txt'

但似乎无法让它发挥作用。

2 个答案:

答案 0 :(得分:49)

cat setup.json |  docker run -i  ubuntu /bin/bash -c 'cat'

这对我有用。删除-t。也不需要-a's。

答案 1 :(得分:-5)

更好的解决方案是使(mount)主机文件夹可供docker容器访问。例如。像这样

docker run -v /Users/<path>:/<container path> ... 

以下是/Users/<path>是主机上的文件夹,<container path>在容器内安装了路径。

另见Manage data in containers手册页。

更新另一个Accessing External Files from Docker Containers示例。