我可以为spring boot docker容器配置hosts文件吗?

时间:2017-01-22 17:37:16

标签: docker spring-boot

我开发了一个spring boot应用程序并构建了一个docker镜像。为了让应用程序运行,我必须添加一个新行" 127.0.0.1:www.hostname.com"到/ etc / hosts。我想在运行docker image时自动进行此配置。我试过这个:

int main(void)
{
     char str[50];
     int n;
     printf("Enter a string and a number\n");
     scanf("%s %d", str, &n);
     printf("string entered: %s, number: = %d", str, n );
     return 0;
}

我的期望是:

  

www.hostname.com:8080 = 127.0.0.1:8080

但它不起作用。 请给出一些建议。感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用--hostname运行容器,例如

docker run -d -ti --hostname myhost --name mytest ubuntu /bin/bash

您向容器的172.17.0.3 www.hostname.com添加了一行/etc/hosts,其中172.17.0.3是容器本身的私有地址,因此它在内部从容器本身和docker docker解析它服务器也是。

如果您使用--add-host运行容器,例如

docker run -d -ti --add-host www.hostname.com:127.0.0.1 --name mytest ubuntu /bin/bash

您向容器的127.0.0.1 www.hostname.com添加了一行/etc/hosts,因此它正在从容器本身内部解析www.hostname.com127.0.0.1。 它起作用,至少在Linux上的Docker 1.13.0版本中。

否则,您可以使用sedCMD中的其他替换命令或在docker run上覆盖命令来更改系统启动时容器的/ etc / hosts。