我创建了自己的Dockerfile,在构建过程中我插入了/ opt / wilfly / log我的log4j.xml。 现在我需要创建volume / mnt / data / logs / application:/ opt / wildfly / log
我跑命令 sudo docker run --name = myapp -v / mnt / data / logs / application:/ opt / wildfly / log -d -i -t application
但是当我查看docker容器时,文件夹/ opt / wilfly / log为空。在这个文件夹中应该是log4j.xml。
谢谢。
答案 0 :(得分:1)
挂载数据时,主机中的文件夹会“覆盖”容器中的已装入文件夹。
因此,你可以做一些选择:
log4j.xml
复制到您的本地/mnt/data/logs/application
文件夹中,然后像您一样运行容器。-v /mnt/data/logs/application:/opt/wildfly/log
并使用您在图片构建期间添加的原始log4j.xml
。请注意,您也可以根据需要安装文件(而不是整个文件夹):-v /mnt/data/logs/application/log4j.xml:/opt/wildfly/log/log4j.xml
但不会改变行为 - 主机中的文件将被安装到容器中不是相反的方向。
答案 1 :(得分:1)
也许你应该将它移到另一个目录中。
例如,将 log4j.xml 移至 / opt / wilfly / ,并将记录路径设置为 / opt / wilfly / log 。
运行容器时,log4j.xml不会消失。