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

时间:2019-03-11 14:51:19

标签: docker ubuntu docker-machine docker-container

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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

Docker directly manages the /etc/hosts files in containers。您不能在那里绑定安装文件。

在多个位置手动维护主机名到IP地址的映射可能很难保持最新。考虑运行DNS服务器(例如BIND或dnsmasq),或使用托管服务(例如Amazon的Route 53)或服务发现系统(例如Consul)(附带提供DNS接口)。

如果您确实需要将条目添加到容器的/etc/hosts文件中,则可以使用docker run --add-host选项或Docker Compose extra_hosts: setting

通常,容器无法访问主机的文件系统,除非docker run -v选项将特定目录映射到容器中。同样作为一般规则,您不能直接更改容器中的安装点。停止,删除并使用不同的-v选项重新创建。

答案 2 :(得分:0)

示例。 容器 ID:32162f4ebeb0

target_link_libraries(...)