采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
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
"" {
"redis"
您的代码有问题,首先监听127.0.0.1意思是只有本地才能访问,如何让外面访问呢,改成0.0.0.0即可
第二,您的redisHost写127.0.0.1 怎么能可以? redis是另外一个container起得,根本不在本地127.0.0.1怎能访问的到呢。 改成redis即可,这也是docker-compose里redis服务的名字,用名字访问即可,这个我们在课程里有讲过。
可以了,谢谢老师!
按照例子,创建了一个Nginx的容器,可以正常访问。
但是我自己的依旧不可以(添加了端口映射)
docker run -d --link=redis --publish=8888:80 --name=golang-redis -e REDIS_HOST=redis holydocker417/golang-redis
我看您起了三个容器,那个nginx的8000端口可以访问,但是golang 8888访问不了是么,那请问您通过docker exec 进到golang-redis内,访问 127.0.0.1:80能访问么?
进到容器里是可以访问的
把你的docker-compose文件分享一下我,我在本地试试
您好,这是Mac的限制,不是您的问题,您可以参考下这个https://docs.docker.com/docker-for-mac/networking/ mac下的docker在网络方面有一些限制。
添加了端口映射,还是不行呢
登录后可查看更多问答,登录/注册
无论你是开发、测试还是运维,Docker都是你的必备技能。
1.8k 26
1.7k 18
1.6k 17
1.4k 16
1.5k 16
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号