Docker 卷冲突

标签 docker

我有一个在 HA 中运行的 dockerized Web 应用程序设置。我有一个运行 dockup 的 cron 设置每天午夜备份我存储在其他容器上的重要信息。现在我也想从我的 Web 应用程序中备份和汇总我的日志。问题是,我该怎么做?如果我使用 VOLUME在 Dockerfile 中键入以公开 /logs到主机,会有冲突,因为会有两个 /logs dockup 上的目录容器?

最佳答案

我已经检查了停靠。它没有/logs 目录。似乎它使用/var/logs 进行日志输出。

$ docker run -it --name dockup borja/dockup bash

否则,是的,这将是一个问题,因为卷将以提到的名称安装,并且当前容器进程也将登录到该文件夹​​。不好。
  • 使用像 fluentd 这样的日志容器。在这个 tutorial它还提供对 S3 存储桶的写入,例如停靠。教程可以创始人here .
  • 调整你的容器,例如使用符号链接(symbolic link)来记录日志或将日志中继到不同的卷。
  • 不是通过容器而是通过本地 docker 访问日志,然后自己将其复制到 S3 或在本地安装的日志文件上运行停靠。
    $ docker logs container/name > logfile.log
    $ docker run --rm \
      --env-file env.txt \
      -v $(pwd)/logfile.log:/customlogs/logfile.txt \
      --name dockup borja/dockup
    

    Now you can take the folder /customlogs/ as your backup path inside the env.txt.

  • 关于Docker 卷冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318395/

    相关文章:

    Java - Docker 无法安装依赖项 - Html2Pdf 库

    Docker 挂载命名空间

    docker - 如何创建准备使用 docker-compose 进行部署的镜像

    docker - 如何让 docker-compose 始终从新图像重新创建容器?

    linux - su 和 sudo 未安装,但我需要 root 权限才能安装它们

    docker - 尝试从 Docker 容器访问 Kubernetes API 的问题

    mysql - Nginx Docker 卷为空

    python - docker 在 python 循环中执行 time.sleep(1) 时卡住

    docker - 使用docker compose将文件从docker容器复制到主机

    docker - 如何通过另一个容器的172.17.42.1:53:53/udp(docker0)通过暴露的端口访问容器(SkyDns)? Docker 1.7.1,Centos 7