docker - 访问docker容器映射的端口 :curl: (56) Recv failure: Connection reset by peer
问题描述
- 使用host和br启动两个容器
docker run -d --name="nginx_host" --net="host" nginx
docker run -d --name nginx_br -p 8000:80 nginx
- 查看容器列表
[root@docker_base ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2754b6f0d93e nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8000->80/tcp nginx_br
cb73872caa94 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours nginx_host
- 显示问题
[root@docker_base ~]# curl localhost:8000
curl: (56) Recv failure: Connection reset by peer
[root@docker_base ~]# curl localhost:80
<!DOCTYPE html>
<html>
<head>
为什么nginx_br无法访问?
=========================
一些信息
[root@docker_base ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2021-03-16 17:12:51 CST; 1h 49min ago
Docs: https://docs.docker.com
Main PID: 2278 (dockerd)
CGroup: /system.slice/docker.service
├─2278 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
└─2975 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8000 -container-ip 172.17.0.2 -container-port 80
3月 16 17:12:50 docker_base dockerd[2278]: time="2021-03-16T17:12:50.364215347+08:00" level=warning msg="[graphdriver] WARNING: the devicemapper storage-dr...e release"
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:50.999168695+08:00" level=warning msg="Unable to find pids cgroup in mounts"
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:51.000925360+08:00" level=info msg="Loading containers: start."
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:51.298066663+08:00" level=info msg="Loading containers: done."
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:51.754027070+08:00" level=info msg="Docker daemon" commit=363e9a8 graphdriver(s)=devicema...on=20.10.4
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:51.754707862+08:00" level=info msg="Daemon has completed initialization"
3月 16 17:12:51 docker_base systemd[1]: Started Docker Application Container Engine.
3月 16 17:12:51 docker_base dockerd[2278]: time="2021-03-16T17:12:51.869090242+08:00" level=info msg="API listen on /var/run/docker.sock"
3月 16 17:19:45 docker_base dockerd[2278]: time="2021-03-16T17:19:45.903746502+08:00" level=info msg="ignoring event" container=3edc61d736b71ba79f5ed3b09fe...askDelete"
3月 16 18:51:45 docker_base dockerd[2278]: time="2021-03-16T18:51:45.978054059+08:00" level=info msg="ignoring event" container=c5959e50dfa8524bfefe60f8a01...askDelete"
Hint: Some lines were ellipsized, use -l to show in full.
[root@docker_base ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.000000000000 no vetha8d3493
[root@docker_base ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
以下是一些环境和网络详细信息
解决方案
我无法通过重新启动 docker 来解决它。但是,我将 docker0 设置为混杂模式。这个问题解决了
ifconfig docker0 promisc
推荐阅读
- c++ - 为什么 QObject::disconnect(const QMetaObject::Connection &connection) 使用 const 参数来修改它?
- cmake - CMake - 导入的库具有必须首先出现的库依赖项
- nsis - NSIS - 仅当系统 ID 为 64 位时才显示 SectionGroup 中的部分
- go - 如何从另一个文件或包导入gorm db连接
- java - 为什么在调用方法时,它说我已经捕获了异常,但我需要捕获它?
- javascript - 参数不可分配给参数 - 打字稿错误
- angular - 在 Angular 模板驱动表单中提交时显示表单验证错误
- r - 如果日期介于两个日期之间,则使用共享参考查找值
- openssl - 我在创建 Rabbitmq 证书时遇到以下错误。错误是什么。请用明确的解决方案向我解释
- python - brew安装pip3,无法安装virtualenv