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