docker将数据从容器挂载到主机

时间:2018-05-15 10:51:14

标签: docker dockerfile docker-volume

我创建了自己的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。

谢谢。

2 个答案:

答案 0 :(得分:1)

挂载数据时,主机中的文件夹会“覆盖”容器中的已装入文件夹。

因此,你可以做一些选择:

  1. log4j.xml复制到您的本地/mnt/data/logs/application文件夹中,然后像您一样运行容器。
  2. 删除-v /mnt/data/logs/application:/opt/wildfly/log并使用您在图片构建期间添加的原始log4j.xml
  3. 请注意,您也可以根据需要安装文件(而不是整个文件夹):-v /mnt/data/logs/application/log4j.xml:/opt/wildfly/log/log4j.xml但不会改变行为 - 主机中的文件将被安装到容器中不是相反的方向。

答案 1 :(得分:1)

也许你应该将它移到另一个目录中。

例如,将 log4j.xml 移至 / opt / wilfly / ,并将记录路径设置为 / opt / wilfly / log

运行容器时,log4j.xml不会消失。