我新使用spring boot和docker,我遇到了运行docker容器的问题。 在调试模式下,应用程序启动没有问题,但是当我将它们作为容器运行时,出现了问题。 例如,我的服务器配置包含所有yml文件,也包括eureka属性。 配置服务器启动完美,但不是eureka服务器,它必须查找配置服务器的配置,因为这些:
int main()
{
ifstream infile("C:\\Teste\\Teste.txt");
ofstream output("C:\\Teste\\output.txt");
string line;
string columns[16];
vector<Input_Spec> Input;
Input_Spec oneInput;
while (getline(infile, line))
{
split(line, ';', columns);
if (!columns[0].empty())
{
oneInput.Data = columns[0];
oneInput.Ativo = columns[1];
oneInput.Buy_Sell = stoi(columns[2]);
oneInput.Sequencia = stod(columns[3]);
oneInput.Id = stod(columns[4]);
oneInput.Event = stoi(columns[5]);
oneInput.Hr_Priority = columns[6];
oneInput.Priority = stod(columns[7]);
oneInput.Price = stod(columns[8]);
oneInput.Qtd_Total = stod(columns[9]);
oneInput.Qtd_Traded = stod(columns[10]);
oneInput.Data_Order = columns[11];
oneInput.Data_Time_Order = columns[12];
oneInput.State_Of_Order = columns[13];
oneInput.Condition_Of_Order = columns[14];
oneInput.Broker = stod(columns[15]);
Input.push_back(oneInput);
}
}
// ----------------------
// Modify your data here.
// ----------------------
for(vector<Input_Spec>::const_iterator it = Input.begin(); it != Input.end(); it++)
{
output << it->Data << '\t';
output << it->Ativo << '\t';
output << it->Buy_Sell << '\t';
output << it->Sequencia << '\t';
output << it->Id << '\t';
output << it->Event << '\t';
output << it->Hr_Priority << '\t';
output << it->Priority << '\t';
output << it->Price << '\t';
output << it->Qtd_Total << '\t';
output << it->Qtd_Traded << '\t';
output << it->Data_Order << '\t';
output << it->Data_Time_Order << '\t';
output << it->State_Of_Order << '\t';
output << it->Condition_Of_Order << '\t';
output << it->Broker << '\n';
}
output.close();
infile.close();
return 0;
}
在eureka的日志中,我发现:
找不到PropertySource:GET请求的I / O错误 &#34; http://127.0.0.1:8888/server-eureka/default&#34;:拒绝连接; 嵌套异常是java.net.ConnectException:连接被拒绝
所以我看到尤里卡可以uri: ${vcap.services.config-service.credentials.uri:http://127.0.0.1:8888}
未完成任务。
也许我想念Docker文件中的内容。
答案 0 :(得分:2)
如果您不使用docker链接容器,则必须仅使用公共IP地址。 Docker将为每个正在运行的容器分配一个自己的IP地址,默认情况下无法访问。只有当您开始公开端口时,才会有一个iptables条目,它将主机公共IP地址和给定端口链接到内部使用的端口和(动态分配的)docker容器的IP地址。这也是为什么127.0.0.1不起作用的原因,因为它会查看容器的本地上下文,但tgere服务没有运行。