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