无法访问任何服务的容器
我创build了一个图像: stavalfi/projecty:latest
这是一个非常基本的Java春季应用程序。
当我运行一个没有swarm的容器时,一切工作正常:
docker run -d -p 8081:8080 --name container1 stavalfi/projecty:latest
从铬工作:
http://localhost:8081/ http://172.17.0.2:8080/ <<-- the address of the leader (no other nodes in the swarm)
当我使用以下方法创build服务时:
docker service create -p 8080:8080 --name service1 stavalfi/projecty:latest docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ab8cb85e9750 stavalfi/projecty:latest "/bin/sh -c '/usr/..." 5 minutes ago Up 5 minutes 0.0.0.0:8081->8080/tcp container1 8928604253ed stavalfi/projecty:latest "/bin/sh -c '/usr/..." 21 minutes ago Up 21 minutes 8080/tcp service1.1.uhpsxn9mke7fkfwpgwke8ugnt e312e148de87 nginx:latest "nginx -g 'daemon ..." 24 minutes ago Up 24 minutes 80/tcp web.1.zfihms3t4cy3h489srbfgrbw3
我不能ping我的容器,我无法从铬到达我的应用程序:
http://localhost:8080/ <<-- no answer http://10.0.2.15:8080/ <<-- response: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sat Oct 28 18:24:26 UTC 2017 There was an unexpected error (type=Internal Server Error, status=500). 8928604253ed: 8928604253ed: Name or service not known http://10.0.2.15:8080/error <<-- response: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sat Oct 28 18:25:34 UTC 2017 There was an unexpected error (type=None, status=999). No message available
我还创build了nginx:最新的服务运行:
docker service create -p 80:80 --name web nginx http://10.0.2.15:80/ <<-- working http://localhost:80/ <<-- not working
java的spring启动控制器代码:
@RestController public class HelloController { @RequestMapping("/") @SneakyThrows public String index() { String hostname = InetAddress.getLocalHost().getHostName(); return "Hostname: "+hostname+ "! Greetings from Spring Boot!"; } }
问题:
-
我怎样才能访问我的stavalfi / projecty:最新的服务localhost:8080和10.0.2.15:8080(领导ip)?
-
我如何从localhost:8080访问ngrix服务,而不是从10.0.2.15:8080(leader IP)访问?
我使用下面的命令打印正在运行的容器的日志(使用stavalfi / projecty:latest image):
docker logs <docker container name/id>
我看到我的服务器无法find他的主机名,所以他为每个HTTP GET请求压碎。 奇怪的是,当我运行一个服务时,容器id不会添加到/ etc / hosts文件,但是当我运行一个容器时,containerID被添加到/ etc / hosts文件中。
我很想知道为什么如果有人知道。
- Docker-compose每次创build一个新的数据库,数据不会被保存
- Docker – 具有自定义conf的nginx
- Docker云子模块authentication
- Docker与2个WordPress和1个数据库问题
- Dockered Django + Celery(`celeryd`和`celerybeat`),任务被执行,但数据库(SQLite)不被修改。 哪里不对?
- Codeception的Web驱动程序(在Docker上的Selenium)testing不能看到其他容器(尽pipe在我的开发机器?)
- 与MySQL容器春季启动应用程序工作,但与春季启动应用程序容器它不
- Docker组成Nginx / PHP-FPM / Composer
- docker机ls显示状态超时