我正在尝试使用 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
有什么想法吗?
答案 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