首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从容器命令提示符在主机上运行命令

从容器命令提示符在主机上运行命令
EN

Stack Overflow用户
提问于 2018-05-04 19:05:57
回答 2查看 2.1K关注 0票数 5

我使用portainer来管理容器,它工作得很好。

https://portainer.io/

但是当我连接到控制台时,我得到了容器的命令提示符。有没有办法运行像ls /home/这样的简单命令来列出主机上的文件?

换句话说,是否有任何映像可以“按原样”挂载主机服务器的文件系统?

EN

回答 2

Stack Overflow用户

发布于 2018-05-09 01:13:14

下面是一个使用docker命令行的示例:

代码语言:javascript
运行
复制
$ docker run --rm -it -v ~/Desktop:/Desktop alpine:latest /bin/sh
/ # ls /Desktop/

您可以将该方法扩展到您需要的范围。用它做实验。了解different mount options

我知道MacOS上的Docker应用程序提供了一种默认卷挂载的方法。Portainer还声称提供了一个volume management screen,我还没有使用它。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2018-05-13 17:55:17

最重要的是::You 从来没有想过要这样做。

挂载到容器的卷用于持久化容器的数据,因为容器被设计为易失性的(容器本身不应该持久化它的状态,因此重新启动容器n次应该会导致每次启动时都有相同的容器状态)-因此可以将卷看作一个数据库,其中应该存储所有数据(容器的状态)。

以这种方式查看卷可以更容易地决定是否共享主机的整个文件系统,因为此容器将拥有对主机操作系统文件本身的读写权限,该文件本身是一个huge security threat

跨容器共享卷被认为是一个糟糕的容器架构,更不用说共享整个主机文件系统了。

如果您需要访问ssh (或远程桌面)来在您的主机上运行命令或任务,我会建议您的主机使用简单的ssh(或远程桌面)。

如果您的容器出于某种原因需要访问特定的文件夹,那么您应该考虑mounting or binding that folder to the container

代码语言:javascript
运行
复制
docker run -d --name devtest --mount source=myvol2,target=/app nginx:latest

我建议将该文件夹的内容复制到docker管理的卷( docker/volumes树下的文件夹),并将容器绑定到该卷,而不是原始文件夹,以最大限度地减少容器对主机操作系统的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50173484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档