如何从Docker容器访问主机中的文件?

问题描述 投票:0回答:2

所以我在Ubuntu服务器主机上有Docker Ubuntu仿生容器。从容器我可以看到hsot驱动器挂载为/ etc / hosts,而不是目录。尝试在不同的位置卸载和重新安装但是说允许,这种情况发生在我以root身份尝试时。那么如何访问主机系统的内容?

docker ubuntu docker-machine docker-container
2个回答
0
投票

首先,etc/hosts是一个存在于所有Linux系统上的网络文件,它与驱动器或docker无关。

其次,如果要访问Docker容器内部分主机文件系统,则需要使用volumes。在docker run命令中使用-v标志,您可以指定主机上要安装到容器中的目录,格式如下:

-v /path/on/host:/path/inside/container

例如:

docker run -v /path/on/host:/path/inside/container <image_name>

0
投票

Docker directly manages the /etc/hosts files in containers。您无法在那里绑定文件。

手动维护主机名到多个地方的IP地址的映射可能很难以保持最新。考虑运行DNS服务器,如BIND或dnsmasq,或使用托管服务,如亚马逊的Route 53,或服务发现系统,如Consul(顺便提供DNS接口)。

如果您确实需要将条目添加到容器的/etc/hosts文件中,则docker run --add-host选项或Docker Compose extra_hosts: setting将执行此操作。

作为一般规则,容器无法访问主机的文件系统,除非docker run -v选项将特定目录映射到容器中。另外,作为一般规则,您无法直接更改容器中的挂载点;使用不同的-v选项停止,删除和重新创建它。

© www.soinside.com 2019 - 2024. All rights reserved.