外部访问docker里面nginx服务提示链接被重置该如何解决?
最近在学docker,我通过docker pull下载了一个ubuntu18.04的镜像,然后通过命令:
docker run -it ubuntu:18.04 /bin/bash
进入了该镜像的容器内容,然后在该容器内部执行了如下命令:
2 apt install php7.4
3 apt update
4 apt install php7.4
5 apt install php
6 php -v
7 add-apt-repository ppa:ondrej/php
8 apt-get install software-properties-common
9 add-apt-repository ppa:ondrej/php
10 apt-get update
11 apt install php7.4
12 php -v
13 apt install nginx1.18
14 apt install nginx 1.18
15 apt install nginx
16 nginx -v
17 apt install mysql
18 mysql -v
19 apt install mysql-server
20 mysql -v
21 mysql --version
22 apt install mysql-server
23 find / -name 'nginx.conf'
24 docker diff
25 service nginx start
26 ping localhost:90
27 curl
......
分别安装了php7.4 nginx mysql服务,一切都安装完毕,然后通过commit命令新作了一个镜像:
docker commit --author "yhm" --message "安装了nginx,php,mysql服务" b30e4ee306b6
sha256:64bb154a76245b760aa314924b97d64bc8c4fddaf954ccd2a6a3903c16a1587d
然后通过命令:
docker run -it -p 8009:80 ubuntu:18.04
启动了该镜像,但是在本地通过浏览器访问 http://localhost:8009,却一直提示:无法访问此网站,连接已重置。
补充一下,我在容器里面通过 curl localhost 是没有问题的,访问到了nginx的默认首页。
另外我通过监控nginx的访问日志文件,也没看到通过本地主机的访问记录,通过容器内的curl访问的记录倒是有。
请问是哪里出问题了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你每一次允许的docker都是一个新的
ubuntu:18.04
里面怎么可能有服务。docker是一个镜像,除了通过数据卷同步数据之外,一般都是无状态的。你进去docker然后安装一堆乱七八糟到,停止了这些数据就没了。
你这种需要在内部定制的是需要自己构建docker镜像,然后再运行。
参见
Dockerfile