首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker命令,不使用挂载目录/

Docker命令,不使用挂载目录/
EN

Stack Overflow用户
提问于 2016-01-22 12:00:58
回答 1查看 16.5K关注 0票数 5

我刚接触过码头集装箱,我正在努力解决我现在面临的一个问题。

这些是我基于有限知识的理解。

当我们创建一个码头容器时,docker会创建一个本地挂载,并将其用作码头容器的根文件系统。

现在,如果我使用docker从主机服务器运行容器中的任何命令,那么docker就不会使用挂载的分区作为容器的/文件系统。我的意思是,它仍然会显示主机服务器中的二进制文件和env变量。是否有任何选项/替代解决方案使对接者也使用原来挂载的目录进行对接?

如果我使用对接器访问/启动容器,或者运行-i -t /bin/bash,那么我将挂载目录作为我的/文件系统,这给了我一个与我的主机系统完全独立的环境。但这种情况不会发生在docker命令中。

救命啊!!

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 21:59:48

你是在误解的情况下运作的。码头映像只包含安装在其中的内容。出于效率原因,这通常是一个非常精简的操作系统版本。

对接器容器是从映像启动的,这是一个运行版本,可以更改和存储状态,但可能会被丢弃。

docker run从图像启动容器。您可以多次run相同的图像来创建完全不同的容器(它们的内容恰好具有相同的起点)。

docker exec附加到其中一个容器以运行命令。所以你只会看到里面的东西.在图像中,或者添加post start (如日志文件)。它对主机文件系统没有远见,而且可能不是同一个操作系统--唯一的要求是它共享内核的元素.虽然它通常有一些常用的二进制文件。

当您使用run创建一个容器时,您可以指定一个挂载。这样做的一个选择是通过主机文件系统,例如-v /path/on/host:/path_in/container。但您不必这样做,您可以使用数据容器或使用停靠卷挂载。例如,docker run -v /mount使用不是父主机一部分的docker文件系统在容器中创建一个挂载点。这可用于使用:docker create -v /path/to/data --name data_for_acontainer some_basic_image制作数据容器

然后从新的数据容器中挂载卷:

代码语言:javascript
复制
docker run -d --volumes-from data_for_acontainer some_app_image 

它将把数据容器附加到/path/to/data挂载上。但是,在这两种情况下,“主机”文件系统都是直接接触到的--这就是篡改东西的全部要点。

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

https://stackoverflow.com/questions/34946253

复制
相关文章

相似问题

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