我使用portainer来管理容器,它工作得很好。
但是当我连接到控制台时,我得到了容器的命令提示符。有没有办法运行像ls /home/这样的简单命令来列出主机上的文件?
换句话说,是否有任何映像可以“按原样”挂载主机服务器的文件系统?
发布于 2018-05-09 01:13:14
下面是一个使用docker命令行的示例:
$ docker run --rm -it -v ~/Desktop:/Desktop alpine:latest /bin/sh
/ # ls /Desktop/
您可以将该方法扩展到您需要的范围。用它做实验。了解different mount options。
我知道MacOS上的Docker应用程序提供了一种默认卷挂载的方法。Portainer还声称提供了一个volume management screen,我还没有使用它。
希望这能有所帮助。
发布于 2018-05-13 17:55:17
最重要的是::You 从来没有想过要这样做。
挂载到容器的卷用于持久化容器的数据,因为容器被设计为易失性的(容器本身不应该持久化它的状态,因此重新启动容器n次应该会导致每次启动时都有相同的容器状态)-因此可以将卷看作一个数据库,其中应该存储所有数据(容器的状态)。
以这种方式查看卷可以更容易地决定是否共享主机的整个文件系统,因为此容器将拥有对主机操作系统文件本身的读写权限,该文件本身是一个huge security threat。
跨容器共享卷被认为是一个糟糕的容器架构,更不用说共享整个主机文件系统了。
如果您需要访问ssh (或远程桌面)来在您的主机上运行命令或任务,我会建议您的主机使用简单的ssh(或远程桌面)。
或如果您的容器出于某种原因需要访问特定的文件夹,那么您应该考虑mounting or binding that folder to the container
docker run -d --name devtest --mount source=myvol2,target=/app nginx:latest
我建议将该文件夹的内容复制到docker管理的卷( docker/volumes树下的文件夹),并将容器绑定到该卷,而不是原始文件夹,以最大限度地减少容器对主机操作系统的影响。
https://stackoverflow.com/questions/50173484
复制相似问题