Mac无法访问容器的网络

来源:6-4 水平扩展和负载均衡

Haleeeea

2019-06-03

图片描述
图片描述

写回答

3回答

麦兜搞IT

2019-06-06

func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe("0.0.0.0:80", nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
redisHost := os.Getenv("REDIS_HOST")
if redisHost == "" {
redisHost = "redis"
}

您的代码有问题,首先监听127.0.0.1意思是只有本地才能访问,如何让外面访问呢,改成0.0.0.0即可

第二,您的redisHost写127.0.0.1 怎么能可以? redis是另外一个container起得,根本不在本地127.0.0.1怎能访问的到呢。 改成redis即可,这也是docker-compose里redis服务的名字,用名字访问即可,这个我们在课程里有讲过。

//img.mukewang.com/szimg/5cf823b10001130014921594.jpg

0
1
Haleeeea
可以了,谢谢老师!
2019-06-06
共1条回复

Haleeeea

提问者

2019-06-04

按照例子,创建了一个Nginx的容器,可以正常访问。 

//img.mukewang.com/szimg/5cf5cfd9000125cc14140920.jpg


但是我自己的依旧不可以(添加了端口映射)

docker run -d --link=redis --publish=8888:80 --name=golang-redis -e REDIS_HOST=redis holydocker417/golang-redis

//img.mukewang.com/szimg/5cf5d1bc000195fd28780326.jpg

0
4
Haleeeea
回复
麦兜搞IT
怎么发您呢
2019-06-05
共4条回复

麦兜搞IT

2019-06-04

您好,这是Mac的限制,不是您的问题,您可以参考下这个https://docs.docker.com/docker-for-mac/networking/    mac下的docker在网络方面有一些限制。

0
1
Haleeeea
添加了端口映射,还是不行呢
2019-06-04
共1条回复

系统学习Docker 践行DevOps理念

无论你是开发、测试还是运维,Docker都是你的必备技能。

3297 学习 · 1895 问题

查看课程