外部访问docker里面nginx服务提示链接被重置该如何解决?

发布于 2022-09-12 13:13:10 字数 1485 浏览 23 评论 0

最近在学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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离去的眼神 2022-09-19 13:13:10

你每一次允许的docker都是一个新的ubuntu:18.04里面怎么可能有服务。
docker是一个镜像,除了通过数据卷同步数据之外,一般都是无状态的。你进去docker然后安装一堆乱七八糟到,停止了这些数据就没了。
你这种需要在内部定制的是需要自己构建docker镜像,然后再运行。
参见 Dockerfile

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文