我可以告诉dockerfile将文件写入主机吗?

时间:2018-08-14 03:14:20

标签: docker

我正在尝试使用docker在特定环境中构建项目,但是我想知道是否有一种方法可以避免必须docker run -v [mypath]:[workdir] -it [name]来简单地取出一些文件。

我可以告诉dockerfile运行一些命令,然后将生成的文件复制到主机吗?

2 个答案:

答案 0 :(得分:0)

否,图像和容器是有意与主机的文件系统隔离的,并且在没有sudo apt install certbot 选项中明确授予特权的情况下,有意没有办法使图像在主机上读取或写入文件。

如果您的真正目标是运行某些东西来与主机上的文件进行交互,那么与编写非常长的sudo certbot certonly --standalone -d example.com -d www.example.com 命令行(并且需要root用户)相比,直接在主机上安装和运行它通常会更好有权执行任何操作。

答案 1 :(得分:0)

您不能直接将文件写入主机系统。但是您仍然可以通过将结果打印到控制台并将其直接写入文件中来实现。

以该docker映像为例:docker/whalesay。当您运行docker run docker/whalesay cowsay Hello there!时,它将Hello there!和鲸鱼一起打印到控制台中。因此,您可以执行以下操作将这些内容写回到文件中:

docker run docker/whalesay cowsay Hello there! | tee ./somefiletowrite.txt