请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

docker容器内部运行php think run后在本地如何访问?

解决方法是什么?端口映射吗?具体怎么映射?
我在本地访问127.0.0.1:8000访问不到,
然后使用docker容器ip:8000也访问不到
在docker容器内部使用curl请求发现没有curl命令
图片描述

谢谢

正在回答

3回答

爱因诗贤 2019-12-17 20:18:19

可以使用端口映射,比如  在启动容器的时候可以,如 ,docker run -it -d -p 4001:8888 -p 4002:3306 -v /etc/haproxy:/usr/local/etc/haproxy --name haproxy1 --privileged --net=net1 haproxy
加一条命令 其中-p 4002:3306就是端口映射,4002是宿主机的ip,可以通过外部访问映射到 docke的 3306,除了端口映射还有目录映射,目录映射一般可以使用docker卷(这种比较稳定,直接目录映射容易崩溃)

0 回复 有任何疑惑可以回复我~
  • 提问者 zk3480124 #1
    请教一下,绑定到nginx镜像启动的容器上还是php的容器上,我是直接使用别人的docker-compose安装的?
    回复 有任何疑惑可以回复我~ 2019-12-17 20:21:50
  • 爱因诗贤 回复 提问者 zk3480124 #2
    如果要映射php就是加在 php
    如果要映射nginx的就加在nginx容器
    回复 有任何疑惑可以回复我~ 2019-12-17 20:32:22
爱因诗贤 2019-12-17 20:24:15

你如果访问不到8000端口,可以看下php的进程是不是8000 ,命令 

netstat -apn | grep 8000 或者 ps -aux | grep php

,还有可能是防火墙, 对了,还有记得关一下docker的 Selinux关闭一下,你linux本地的seliux也记得关一下 , /etc/selinux/config  里面有个参数设置为SELINUX=disabled,然后重启下

0 回复 有任何疑惑可以回复我~
  • 提问者 zk3480124 #1
    netstat -apn | grep 8000
    netstat -apn | grep 3306
    netstat -apn | grep 8080
    .......这几个都没反应,本地其他所有项目都正常,用的是https://github.com/yeszao/dnmp
    回复 有任何疑惑可以回复我~ 2019-12-17 20:40:04
  • 提问者 zk3480124 #2
    不过不影响使用,先跳过
    回复 有任何疑惑可以回复我~ 2019-12-17 20:40:59
singwa 2019-12-17 20:15:46

您好。您是本地开启的docker吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 zk3480124 #1
    是..........
    回复 有任何疑惑可以回复我~ 2019-12-17 20:24:20
  • singwa 回复 提问者 zk3480124 #2
    楼上那位同学正解。
    回复 有任何疑惑可以回复我~ 2019-12-17 20:26:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信