Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Azure容器实例中编辑/etc/hosts?_Azure_Docker_Dockerfile_Azure Container Instances - Fatal编程技术网

如何在Azure容器实例中编辑/etc/hosts?

如何在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容器实例,请在创建容器实例时指定命令行,以覆盖烘焙到容器映像

我试图通过echo IP Hostname>>/etc/hosts命令编辑/etc/hosts,但似乎ACI重写了该文件。
我已经尝试过将其放入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
运行该命令。还有问题吗?