GVKun编程网logo

带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝(docker无法连接)

3

在本文中,我们将给您介绍关于带有Docker的PythonAiosmtpd服务器-连接被拒绝的详细内容,并且为您解答docker无法连接的相关问题,此外,我们还将为您提供关于111:连接被拒绝php-

在本文中,我们将给您介绍关于带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝的详细内容,并且为您解答docker无法连接的相关问题,此外,我们还将为您提供关于111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关、AWS ElasticBeanstalk 上的 Docker:“host.docker.internal:host-gateway”:连接被拒绝 iptables 的问题?、Cakephp 2 - Redis - Docker |连接被拒绝、Docker CodeIgniter MariaDb 连接被拒绝的知识。

本文目录一览:

带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝(docker无法连接)

带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝(docker无法连接)

如何解决带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝

我正在尝试开发一个应该在 docker 容器中运行的测试电子邮件服务器。 docker 容器使用 --network=host -P 运行;虽然对于单元测试,我想使用 --network=none。

我特意指定应该使用端口 0(让操作系统选择一个可用端口)。然后我有一个函数来获取实际使用的端口。服务器代码是

  1. #! /usr/bin/env python3
  2. import asyncio #pylint: disable=unused-import
  3. from aiosmtpd.controller import Controller
  4. class DemoEmailHandler:
  5. async def handle_DATA(self,server,session,envelope):
  6. message = {
  7. ''peer'' : session.peer,''mailfrom'' : envelope.mail_from,''to'': envelope.rcpt_tos,''data'' : envelope.content}
  8. print(message)
  9. return ''250 Message accepted for delivery''
  10. class DemoEmailServer:
  11. def __init__(self):
  12. self._handler = DemoEmailHandler()
  13. self._server = Controller(
  14. handler=self._handler,hostname="0.0.0.0",port=0
  15. )
  16. self._server.start()
  17. self._port = self._server.server.sockets[0].getsockname()[1]
  18. def stop(self):
  19. """Tell the server to stop"""
  20. self._server.stop()
  21. def getPort(self) -> int:
  22. """Return the port the SMTP (email) server is actually on"""
  23. return self._port
  24. SERVER = DemoEmailServer()
  25. print(SERVER.getPort())
  26. SERVER.stop()

我一直拒绝连接:

  1. Traceback (most recent call last):
  2. File "./demo_email_server.py",line 36,in <module>
  3. SERVER = DemoEmailServer()
  4. File "./demo_email_server.py",line 25,in __init__
  5. self._server.start()
  6. File "/usr/local/lib/python3.8/dist-packages/aiosmtpd-1.4.2-py3.8.egg/aiosmtpd/controller.py",line 223,in start
  7. self._trigger_server()
  8. File "/usr/local/lib/python3.8/dist-packages/aiosmtpd-1.4.2-py3.8.egg/aiosmtpd/controller.py",line 313,in _trigger_server
  9. s = stk.enter_context(create_connection((hostname,self.port),1.0))
  10. File "/usr/lib/python3.8/socket.py",line 808,in create_connection
  11. raise err
  12. File "/usr/lib/python3.8/socket.py",line 796,in create_connection
  13. sock.connect(sa)
  14. ConnectionRefusedError: [Errno 111] Connection refused

如果我使用 s.bind((''0.0.0.0'',0)) 创建一个没有拒绝连接的简单服务器套接字。

(我的主机和容器都是 Ubuntu 20.04,python 3.8.5,容器从源代码安装了 aiosmtpd 1.4.2)。

有人可以帮忙吗?

111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关

111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关

如何解决111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关

我想我有一个链接问题 我的应用程序有一个错误 我有一个 502 错误的网关错误, 并在应用程序日志中

[error] 6 #6: * 1 connect() Failed (111: Connection denied) while 连接到上游,客户端:172.18.0.5,服务器:laravel-api.art,请求:“GET / HTTP / 1.1”,上游: "fastcgi: //172.18.0.19: 9000",主机: "laravel-api.art" 172.18.0.5

这是我的 Nginx 配置文件

  1. server {
  2. listen 80;
  3. server_name laravel-api.art;
  4. index index.PHP index.html;
  5. error_log /var/log/Nginx/error.log;
  6. access_log /var/log/Nginx/access.log;
  7. root /var/www/public;
  8. location ~ \\.PHP$ {
  9. try_files $uri =404;
  10. fastcgi_split_path_info ^(.+\\.PHP)(/.+)$;
  11. fastcgi_pass laravel-api:9000;
  12. fastcgi_index index.PHP;
  13. include fastcgi_params;
  14. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  15. fastcgi_param PATH_INFO $fastcgi_path_info;
  16. }
  17. location / {
  18. try_files $uri $uri/ /index.PHP?$query_string;
  19. gzip_static on;
  20. }
  21. }

我的 Dockerfile

  1. ``` FROM PHP:7.4-fpm
  2. copY composer.lock composer.json /var/www/
  3. workdir /var/www
  4. # Install dependencies
  5. RUN apt-get update && apt-get install -y \\
  6. build-essential \\
  7. libpng-dev \\
  8. libzip-dev \\
  9. libjpeg62-turbo-dev \\
  10. libfreetype6-dev \\
  11. locales \\
  12. zip \\
  13. jpegoptim optipng pngquant gifsicle \\
  14. vim \\
  15. unzip \\
  16. git \\
  17. curl
  18. # Clear cache
  19. RUN apt-get clean && rm -rf /var/lib/apt/lists/*
  20. # Install extensions
  21. RUN docker-PHP-ext-install pdo_MysqL zip exif pcntl
  22. RUN docker-PHP-ext-configure gd --with-freetype --with-jpeg
  23. RUN docker-PHP-ext-install gd
  24. # Install composer
  25. RUN curl -sS https://getcomposer.org/installer | PHP -- --install-dir=/usr/local/bin --filename=composer
  26. # Add user for laravel
  27. RUN groupadd -g 1000 www
  28. RUN useradd -u 1000 -ms /bin/bash -g www www
  29. # copy application folder
  30. copY . /var/www
  31. # copy existing permissions from folder to docker
  32. copY --chown=www:www . /var/www
  33. RUN chown -R www-data:www-data /var/www
  34. # change current user to www
  35. USER www
  36. EXPOSE 9000
  37. CMD ["PHP-fpm"]
  38. # production environment
  39. FROM Nginx:stable-alpine
  40. RUN rm /etc/Nginx/conf.d/default.conf
  41. #copY Nginx/Nginx.conf /etc/Nginx/conf.d
  42. copY Nginx/Nginx.conf /etc/Nginx/conf.d/default.conf
  43. EXPOSE 80
  44. CMD ["Nginx","-g","daemon off;"]```

和我的 docker compose 我使用外部反向代理

  1. ```
  2. version: "3.7"
  3. services:
  4. #PHP Service
  5. laravel-api:
  6. build:
  7. context: .
  8. dockerfile: Dockerfile
  9. container_name: ${containerNameServer}
  10. restart: unless-stopped
  11. tty: true
  12. working_dir: /var/www
  13. volumes:
  14. - ./:/var/www
  15. - ./docker-files/PHP/local.ini:/usr/local/etc/PHP/conf.d/local.ini
  16. environment:
  17. VIRTUAL_HOST: ${VIRTUAL_HOST_SERVER},${VIRTUAL_HOST_WWW_SERVER}
  18. LETSENCRYPT_HOST: ${LETSENCRYPT_HOST_SERVER}
  19. LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
  20. volumes:
  21. laravel-api:
  22. networks:
  23. default:
  24. external:
  25. name: webproxy
  26. ```

有关它适用于其他 nodejs / vuejs 应用程序的信息,但这是我的第一个 Laravel PHP-fpm 应用程序

AWS ElasticBeanstalk 上的 Docker:“host.docker.internal:host-gateway”:连接被拒绝 iptables 的问题?

AWS ElasticBeanstalk 上的 Docker:“host.docker.internal:host-gateway”:连接被拒绝 iptables 的问题?

如何解决AWS ElasticBeanstalk 上的 Docker:“host.docker.internal:host-gateway”:连接被拒绝 iptables 的问题??

所以我有一个在 AWS ElasticBeanstalk(最新的 Docker 平台)上运行的多容器项目。

容器共享同一个桥接网络,因为它们需要能够相互通信(端口 3000、8080、9090、9100)。但是其中一个容器也需要能够与主机通信(端口 55113、56113)。

This is normally possible by just adding extra_hosts: "host.docker.internal:host-gateway" to that container and then using host.docker.internal instead of localhost inside the container,即 host.docker.internal:55113。我之前在 Debian 上成功使用过它。

但是这不适用于 AWS ElasticBeanstalk,连接被拒绝(请参阅下面的调试)。

我做错了吗?或者有什么解决办法?


AWS ElasticBeanstalk 平台:

Docker running on 64bit Amazon Linux 2/3.4.2

主机的 Docker 和 Docker-Compose 版本:

$ sudo docker --version

Docker version 20.10.4,build d3cb89e

$ sudo docker-compose --version

docker-compose version 1.29.2,build unkNown

项目的docker-compose.yml:(仅展示相关部分)

version: "3.9"

services:
  prometheus:
    image: prom/prometheus:v2.28.1
    container_name: prometheus
    ports:
      - 9090:9090
    extra_hosts:
      - host.docker.internal:host-gateway # <-------- EXTRA HOST

networks:
  default:
    name: monitoring

容器调试:

$ sudo docker exec -it prometheus cat /etc/hosts

127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.1  host.docker.internal # <-------- the mapping is present
172.25.0.4  f01ffc6b2a8a

$ sudo docker exec -it prometheus wget host.docker.internal

Connecting to host.docker.internal (172.17.0.1:80)
wget: can''t connect to remote host (172.17.0.1): Connection refused

$ sudo docker exec -it prometheus wget host.docker.internal:55113  # <-------- the port I want to reach

Connecting to host.docker.internal:55113 (172.17.0.1:55113)
wget: can''t connect to remote host (172.17.0.1): Connection refused

Host 的 iptables(由 AWS 和/或 Docker 配置,我没有编辑):

$ sudo iptables -S

-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-USER
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o br-a8a58f19c627 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o br-a8a58f19c627 -j DOCKER
-A FORWARD -i br-a8a58f19c627 ! -o br-a8a58f19c627 -j ACCEPT
-A FORWARD -i br-a8a58f19c627 -o br-a8a58f19c627 -j ACCEPT
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.25.0.2/32 ! -i br-a8a58f19c627 -o br-a8a58f19c627 -p tcp -m tcp --dport 8080 -j ACCEPT
-A DOCKER -d 172.25.0.3/32 ! -i br-a8a58f19c627 -o br-a8a58f19c627 -p tcp -m tcp --dport 9100 -j ACCEPT
-A DOCKER -d 172.25.0.4/32 ! -i br-a8a58f19c627 -o br-a8a58f19c627 -p tcp -m tcp --dport 9090 -j ACCEPT
-A DOCKER -d 172.25.0.5/32 ! -i br-a8a58f19c627 -o br-a8a58f19c627 -p tcp -m tcp --dport 3000 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i br-a8a58f19c627 ! -o br-a8a58f19c627 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o br-a8a58f19c627 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN

主机的开放端口:

$ netstat -tuplen

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      0          200315     -
tcp        0      0 127.0.0.1:55113         0.0.0.0:*               LISTEN      1000       119886     -
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      0          200280     -
tcp        0      0 127.0.0.1:22221         0.0.0.0:*               LISTEN      1001       197452     -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      0          14121      -
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      0          201081     -
tcp        0      0 127.0.0.1:56113         0.0.0.0:*               LISTEN      1000       119890     -
tcp        0      0 127.0.0.1:38581         0.0.0.0:*               LISTEN      0          20325      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          18585      -
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      0          201164     -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          16235      -
tcp6       0      0 ::1:55113               :::*                    LISTEN      1000       119885     -
tcp6       0      0 :::111                  :::*                    LISTEN      0          14124      -
tcp6       0      0 ::1:56113               :::*                    LISTEN      1000       119889     -
tcp6       0      0 :::22                   :::*                    LISTEN      0          18594      -
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          15762      -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           0          14119      -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           0          14990      -
udp        0      0 0.0.0.0:979             0.0.0.0:*                           0          14120      -
udp6       0      0 fe80::ed:19ff:fe84::546 :::*                                0          16539      -
udp6       0      0 :::111                  :::*                                0          14122      -
udp6       0      0 ::1:323                 :::*                                0          14991      -
udp6       0      0 :::979                  :::*                                0          14123      -

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Cakephp 2 - Redis - Docker |连接被拒绝

Cakephp 2 - Redis - Docker |连接被拒绝

如何解决Cakephp 2 - Redis - Docker |连接被拒绝

我已经在没有任何运气的情况下解决了互联网的问题。

我收到来自 cakes Cache.PHP 的“连接被拒绝”错误

我的引擎设置为 Redis,我让 docker 正确构建映像(至少我相信我这样做),一切似乎都是正确的,但在我的一生中,我无法让缓存引擎工作。

这是我目前设置的:

Dockerfile
RUN yes | apt-get install redis-server

RUN pecl install redis \\
&& echo "extension=redis.so" > /usr/local/etc/PHP/conf.d/redis.ini \\
&& rm -rf /tmp/pear

docker-compose.yml
redis:
image: "app-redis:cont"
ports:
- "6379:6379"

package.json
"deployRedis": "docker build . -f Dockerfile.redis -t app-redis:cont",

core.PHP
$engine = ''Redis'';
Cache::config(''default'',[
''engine'' => $engine,
''prefix'' => $prefix . ''default_'',
''path'' => CACHE . ''persistent'' . DS,
''serialize'' => $serializingEngine,
''duration'' => $duration,
]);

Cache::config(''_cake_core_'',
''prefix'' => $prefix . ''cake_core_'',
]);

当我调试 extension_loaded(''redis''); 时,我得到 true

的值

这是转储到浏览器的错误信息
Fatal error: Uncaught CacheException: Cache engine "default" is not properly configured. Ensure required extensions are installed,and credentials/permissions are correct in /var/www/html/public/app.name.local/lib/Cake/Cache/Cache.PHP on line 190

最后,当我在 connect 方法中的 RedisEngine.PHP 文件中进行调试时,从 $e 这是错误消息:
**"Connection refused"**

如果值得注意,我已经检查过 docker 中正在运行哪些图像,并且我确实看到了 Redis:

b38550ff4f38 app-redis:cont "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 6379/tcp app_redis.1.j0r12vgrsmv6hbtagcy3oj9vv

非常感谢任何建议,因为我已经在这方面工作了将近 2 天。

谢谢!

解决方法

你看php代码了吗?

https://api.cakephp.org/2.2/source-class-RedisEngine.html#63

  1. array(
  2. ''engine'' => ''Redis'',''prefix'' => null,''server'' => ''127.0.0.1'',''port'' => 6379,''timeout'' => 0,''persistent'' => true
  3. )

试试:

  1. Cache::config(''default'',[
  2. ''engine'' => $engine,''prefix'' => $prefix . ''default_'',''server'' => ''redis'',// docker || ''127.0.0.1'',<------------
  3. ''port'' => 6379,// <----------------
  4. ''path'' => CACHE . ''persistent'' . DS,''serialize'' => $serializingEngine,''duration'' => $duration,]);

Docker CodeIgniter MariaDb 连接被拒绝

Docker CodeIgniter MariaDb 连接被拒绝

如何解决Docker CodeIgniter MariaDb 连接被拒绝

我是 docker 新手,并尝试在我的机器上本地的 docker 容器上部署我的脚本。但问题是我无法连接到我的数据库,每当我查询数据库时,我都会收到错误

MysqLi::real_connect(): (HY000/2002): 连接被拒绝

我已尝试将 hostname => ''localhost'' 替换为 127.0.0.1:3306 的解决方案,正如我在 docker ps 服务中看到的那样,但我无法连接。

Docker Compose 文件:

  1. version: ''3''
  2. services:
  3. myapp:
  4. image: ''bitnami/codeigniter:3''
  5. ports:
  6. - ''8000:8000''
  7. volumes:
  8. - ''.:/app''
  9. mariadb:
  10. image: ''bitnami/mariadb:10.3''
  11. environment:
  12. - ALLOW_EMPTY_PASSWORD=yes
  13. PHPmyadmin:
  14. image: PHPmyadmin/PHPmyadmin
  15. restart: always
  16. ports:
  17. - 8080:80
  18. volumes:
  19. - /sessions
  20. environment:
  21. PMA_HOST: mariadb

running container images

我也尝试升级ma​​riadb:latest,但没有成功。

Database.PHP

  1. $db[''default''] = array(
  2. ''dsn'' => '''',''hostname'' => ''127.0.0.1:3306'',''username'' => ''root'',''password'' => '''',''database'' => ''notification_task'',''dbdriver'' => ''MysqLi'',''dbprefix'' => '''',''pconnect'' => FALSE,''db_debug'' => (ENVIRONMENT !== ''production''),''cache_on'' => FALSE,''cachedir'' => '''',''char_set'' => ''utf8'',''dbcollat'' => ''utf8_general_ci'',''swap_pre'' => '''',''encrypt'' => FALSE,''compress'' => FALSE,''stricton'' => FALSE,''failover'' => array(),''save_queries'' => TRUE
  3. );

已编辑:

我还通过 shell 和 docker exec 访问它来验证我的 sql 服务器正在运行。但它无法通过 codeigniter 访问

我们今天的关于带有 Docker 的 Python Aiosmtpd 服务器 - 连接被拒绝docker无法连接的分享就到这里,谢谢您的阅读,如果想了解更多关于111:连接被拒绝 php-fpm 容器 docker 与反向代理 nginx 错误 502 坏网关、AWS ElasticBeanstalk 上的 Docker:“host.docker.internal:host-gateway”:连接被拒绝 iptables 的问题?、Cakephp 2 - Redis - Docker |连接被拒绝、Docker CodeIgniter MariaDb 连接被拒绝的相关信息,可以在本站进行搜索。

本文标签: