【问题标题】:docker compose by ssh not copying filesdocker compose by ssh 不复制文件
【发布时间】:2021-03-13 23:26:14
【问题描述】:

我正在尝试使用 docker 上下文在远程服务器中使用 docker。我的项目真的很简单,就是一个 docker-compose.yml 管理的 apache 服务器。此 YML 文件已在远程服务器中尝试复制文件并在那里运行命令 docker-compose。像这样操作一切正常。

我面临的问题是当我尝试使用 docker 上下文的这个 ssh 选项运行它时。由于某种原因,文件没有传输到远程机器上。

客户端机器是 Windows server 2019:

远程服务器是同一网络中的ubuntu服务器。

我已尝试与所有人共享 C 文件夹。

我不知道为什么,但是当我检查容器内的文件时,我看到了这个星号,它应该是我想要的文件。

这是 docker-compose.yml:

version: '2'

services:
  php:
    image: bitnami/php-fpm:latest
    ports:
      - 9000:9000
    working_dir: /
    volumes:
      - .:/app
  apache:
    image: bitnami/apache:latest
    ports:
      - 80:8080
    working_dir: /
    volumes:
      - ./apache-vhost/myapp.conf:/vhosts/myapp.conf:ro
      - .:/app
    depends_on:
      - php

有什么想法吗?

【问题讨论】:

    标签: docker ssh docker-compose


    【解决方案1】:

    主机卷始终位于运行 docker 的主机的本地。当您从 docker CLI、在 swarm 模式下或您在 docker-compose 中看到的运行时,这也是一样的。没有真正的解决方案可以使用主机卷,因为它涉及到 Linux 如何进行绑定挂载的基础知识。

    要重新设计它,请考虑使用命名卷并从映像或 docker I/O 重定向填充该卷。例如。以下是一些使用 tar 和 docker 的 I/O 重定向以及将在远程主机上运行的临时容器导入/导出卷的命令:

    # import data
    tar -cC source_dir . | \
      docker run --rm -i -v target_vol:/target busybox tar -xC /target
    
    # export data
    docker run --rm -v source_vol:/source busybox tar -cC /source . | \
      tar -xC target_dir
    

    【讨论】:

    • 谢谢@BMitch,我在 DevOps 和 docker 世界中并不是非常专家。你的回复对我来说看起来有点高级。您是否有任何链接可以让我阅读有关此主题的更多信息?还是一些关键字?
    • @JuanGarcía docker 在这里有关于卷的一般文档。与管理 nfs 服务器相比,我发布了对我来说感觉很简单的选择。 docs.docker.com/storage/volumes
    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    相关资源
    最近更新 更多