docker - 如何在Docker构建期间挂载共享卷?

标签 docker dockerfile

我正在尝试使用docker,使用区域文件的共享卷构建docker的bind9

我想在docker中使用centos构建bind9。在Dockerfile中,我安装了bind,并在安装过程中使用一些文件创建了/ var / named,但是当我使用/ var / named上的共享卷启动容器时,该容器上有区域文件,/ var / named中的原始文件消失了

FROM centos
RUN yum -y install bind -> after that, there are files in /var/named

但是当我使用以下方法启动容器时:
-v /path/to/zonefiles/folder:/var/named

容器无法启动,因为/ var / named中的原始文件已消失
有什么建议如何克服这个问题?也许可以在“docker build”期间使用共享卷?

最佳答案

我对Bind9并不熟悉,但是-v /path/to/zonefiles/folder:/var/named参数在运行时在容器中的/ var / named处挂载了一个卷,以代替镜像上的任何内容。在运行时将文件放在/ var / named中的唯一方法是,如果这些文件恰巧在运行时位于主机上的/ path / to / zonefiles中。

您可能应该考虑将文件挂载到与/ var / named不同的位置。所以-v /path/to/zonefiles/folder:/var/namedSomethingElse

关于docker - 如何在Docker构建期间挂载共享卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56613498/

相关文章:

docker - 如何使用 docker-compose 运行 SolrCloud

windows - Windows docker未知指令版本:

docker - 是否可以将单个 docker 主机用于多件事情

Docker Compose 使用缓存构建命令,并且在复制到 docker 时不拾取更改的文件

Dockerfile:在另一个 ENV 中引用先前定义的 ENV

docker - 如何从 docker volume 中删除数据?

docker - Kubernetes Pod重定向到另一个Pod中的相同端口

postgresql - 使用pgadmin4将csv文件从本地机器导入到postgresql docker容器

angular - Docker组成了Angular 502 Bad Gateway

jenkins - 如何在jenkins中运行已经在Docker容器中的docker镜像