我有以下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
开头。下一个DockerfileFROM 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/wildfly
和docker run -ti --name=wild-02 --volumes-from=data_volume my/wildfly
启动生成的图像时,我的data_colume容器中有两个日志文件。很好很好我想将卷指向主机上的目录。 / var / log / wildfly。
运行
data/volume
时如何在Dockerfiles中实现此功能而不使用-v参数在此先多谢
最佳答案
从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/