如何在Azure容器实例中编辑/etc/hosts?
我试图通过echo IP Hostname>>/etc/hosts命令编辑/etc/hosts,但似乎ACI重写了该文件。如何在Azure容器实例中编辑/etc/hosts?,azure,docker,dockerfile,azure-container-instances,Azure,Docker,Dockerfile,Azure Container Instances,我试图通过echo IP Hostname>>/etc/hosts命令编辑/etc/hosts,但似乎ACI重写了该文件。 我已经尝试过将其放入Docker文件,也尝试过通过--命令行,但都不起作用。使用Docker,当您执行Docker CLI时,它将为您管理/etc/hosts,请参阅 管理/etc/hosts: 您的容器将在/etc/hosts中有定义主机名的行 容器本身以及localhost和其他一些常见的 事情 对于Azure容器实例,请在创建容器实例时指定命令行,以覆盖烘焙到容器映像
我已经尝试过将其放入Docker文件,也尝试过通过--命令行,但都不起作用。使用Docker,当您执行Docker CLI时,它将为您管理
/etc/hosts
,请参阅
管理/etc/hosts:
您的容器将在/etc/hosts中有定义主机名的行
容器本身以及localhost和其他一些常见的
事情
对于Azure容器实例,请在创建容器实例时指定命令行,以覆盖烘焙到容器映像中的命令行。这类似于--entrypoint
命令行参数,用于docker run
。容器实例将在执行命令后终止。有关更多详细信息,请参阅
我建议您可以通过CLI命令az container exec containerName--exec命令“/bin/sh”
与容器实例创建一个交互式shell,前提是映像具有/bin/sh
且容器实例具有公共IP
如果您对容器有更多的confixed操作,则可能更适合您。为了澄清,您所说的“命令行”是指“
--add host”
参数,如?No.az container create--command-line“echo IP Hostname>/etc/hosts”中所述。我并不真正喜欢Azure容器,因此无法为您提供解决方案,但我想指出的是,即使是在本地安装Docker,您的方法也不起作用,因为出于容器网络的目的,/etc/hosts
文件由Docker管理。因为在Azure中,您将在虚拟网络环境中部署容器,所以这很可能也适用于该环境。因此,您可能想更深入地了解网络如何与Azure协同工作,或者找到另一种方法将静态IP添加到您的容器中(例如环境变量)。我认为这是Docker中端点的问题。该命令将覆盖端点,以便即使该命令失败,容器实例也会在运行该命令后终止。当容器实例处于运行状态时,可以使用az container exec
运行该命令。还有问题吗?