docker - Docker Volume指向Dockerfile中的主机目录

标签 docker dockerfile

我有以下Dockerfile:

FROM jboss/wildfly
USER jboss
RUN mkdir -p /opt/jboss/wildfly/standalone/log
VOLUME /opt/jboss/wildfly/standalone/log 
CMD /bin/bash
# CMD true

生成的图像以docker run -ti --name=data_volume data/volume开头。下一个Dockerfile
FROM jboss/wildfly
RUN sed -i 's|<file relative-to="jboss.server.log.dir" 
    path="server.log"/>|\<file relative-to="jboss.server.log.dir" 
    path="\${jboss.host.name}-server.log"/\>|' 
    /opt/jboss/wildfly/standalone/configuration/standalone.xml

覆盖生成的jboss的日志记录,以记录到日志记录目录中的“servername” -server.log。当我使用docker run -ti --name=wild-01 --volumes-from=data_volume my/wildflydocker run -ti --name=wild-02 --volumes-from=data_volume my/wildfly启动生成的图像时,我的data_colume容器中有两个日志文件。很好很好

我想将卷指向主机上的目录。 / var / log / wildfly。

运行data/volume时如何在Dockerfiles中实现此功能而不使用-v参数

在此先多谢

最佳答案

I would like to point my volume to a directory on the host eg. /var/log/wildfly.



从Dockerfile中删除所有提到的卷...使用启动容器
docker run -d -v /var/log/wildfly:/var/log/wildfly  your-image-name

然后在您的代码中只需引用正常路径
/var/log/wildfly

使用docker run -ti启动容器的语法使容器 shell 具有交互性,而-d是将其旋转为后台运行的守护程序的正常模式

关于docker - Docker Volume指向Dockerfile中的主机目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47092564/

相关文章:

C++/CMake/azure DevOps 代码覆盖率和单元测试

shell - 如何修复 docker 文件中的 "sh: 0: Can' t open start.sh”?

docker - 自定义 boot2docker.iso 以在容器上使用无线设备(Docker-toolbox)

docker - 你能理解 Docker 的错误信息吗?

spring - 不使用Maven构建镜像即可对我的Spring Boot应用程序进行Docker化

amazon-web-services - 如何在Docker AWS日志驱动程序的docker run命令中将file_fingerprint_lines选项添加为--log-opt选项

java - Docker Gradle 项目生成单个 JAR,但不断重建 4 层

Docker 机器创建 : Error with pre-create check: "Hyper-v commands have to be run as an Administrator"

docker - 建立我们自己的私有(private) docker 中心

docker - 使用 Docker-in-Jenkins 设置 Jenkins-in-Docker 的最佳实践