docker 由 ssh 撰写,不复制文件

时间:2021-03-13 14:10:33

标签: docker ssh docker-compose

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

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

客户端机器是Windows server 2019: Image server settings

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

我曾尝试与所有人共享 C 文件夹。 Image of shared folder

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

这是 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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

主机卷始终位于运行 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