Docker撰写链接(别名)

我在后端有一个Angularjs前端和一个Spring-Boot Rest API。 我已经创build了两个Docker

DockerFile正面:

FROM httpd:2.4 COPY ./public-html/ /usr/local/apache2/htdocs/ 

DockerFile返回:

 FROM tomcat:8.0 EXPOSE 8080 COPY rest-api.war /usr/local/tomcat/webapps/rest-api.war 

我有一个Docker-Compose文件,我定义了Alias

多克尔-撰写:

 rest: image: restapi container_name: restapi ports: - "8080:8080" frontend: image: frontend container_name: frontend ports: - "80:80" 

在这里输入图像说明 我redifine在我的AngularJs控制器的baseURL

 app.controller('MainCtrl', function ($scope, $location, $http, MainService) { var that = this; var baseUrl = 'http://rest:8080'; 

当我lauchn我的应用程序在控制台我有这个

错误:

 GET http://rest:8080/category net::ERR_NAME_NOT_RESOLVED 

其他容器中的主机文件不会自动更新 在这里输入图像说明 哪里不对 ?

****** UPDATE ******

我创build了一个networking

 $docker network create my-network 

我已经重新定义了我的docker-compose文件

连接到该networking的容器到达其他容器。

所以我有同样的错误。

当我在Kitematic看到我的后端有这样的IP:

在这里输入图像说明

而当我在主机文件中看到的IP是不一样的。

在这里输入图像说明

当我修改我的控制器IP的Kitematic所有的作品,但是当我使用别名不工作

所以你正试图在你的浏览器(Angular)应用程序中使用链接的别名? Docker只会将这些别名公开给容器。 您的本地开发系统位于dockernetworking之外,不会将这些附加到主机文件,因此无法将主机parsing为IP。

在容器内部运行的任何应用程序(如Node.js后端)都将能够使用这些别名。 浏览器不能。

如果您创build了新的networking,则连接到该networking的任何容器都可以通过其名称或服务名称到达其他容器。

创buildnetworking

 $docker network create your-network 

泊坞窗,compose.yml

 rest: image: restapi container_name: restapi ports: - "8080:8080" net: your-network frontend: image: frontend container_name: frontend ports: - "80:80" net: your-network 

请注意如果您使用docker-compose文件版本2.0。 composer php将为您创buildnetworking。

您可以尝试连接configuration文件中的两个容器。

 rest: image: restapi container_name: restapi ports: - "8080:8080" frontend: image: frontend container_name: frontend ports: - "80:80" links: - rest