关于配置docker部署时 无法本地访问网站/报错 curl: (56) Recv failure: Connection reset by peer

Docker配置

安装配置keysudo apt-get install docker-ce docker-ce-cli containerd.io在这里插入图片描述
成功安装docker,前面配置key的时候有个warning,但应该无伤大雅:
安装成功在这里插入图片描述

基于Dockerfile构建并运行

假设你已经有编写好的dockerfile文件,执行命令完成构建(确保命令执行于程序代码目录):

sudo docker build -t [name] . 

通过sudo docker images 命令可以查询到已经构建好的容器

images
正常情况下只需要借助命令就可以运行想要的镜像内容:

sudo docker run -p 8080:8080 -d --name xiaoming_1 xiaoming
  • -p表示指定端口,前面为宿主机端口,后面为虚拟容器的端口
  • -d表示在后台运行
  • -name的第一个参数表示容器运行后的名字,第二个参数表示指定的镜像(image)

无法本地访问网站

容器开始运行后,访问localhost:8080应该可以正常运行
但我在本地访问时无回显,借助curl命令得到如下反馈:

curl: (56) Recv failure: Connection reset by peer

几经周折,试过一些方法并没有效果,但收获一些经验,首先要确定你的容器应该运行起来

sudo docker exec -it xiaoming_1 pwd

这个表示在你的容器内做一个交互命令,如果没有bash环境,可以像这样执行一些简单的Linux命令,确保容器已经运行
没有问题后,继续排查问题,通过以下命令来确定虚拟容器正在监听的端口:

sudo docker logs xiaoming_1

我得到的回显是

Listening on 4000

由此找到问题的关键,我们在启动容器时指定的虚拟容器端口号有问题,正确的命令应该如下所示:

sudo docker run -p 8022:4000 -d --name xiaoming_1 xiaoming

-p指定参数时,虚拟容器的端口应该指定为4000才能够运行,宿主机端口只要不冲突即可
此时通过本地访问或者curl命令都可以正常回显了
成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值