在本文中,我们将给您介绍关于带有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无法连接)
- 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 容器使用 --network=host -P 运行;虽然对于单元测试,我想使用 --network=none。
我特意指定应该使用端口 0(让操作系统选择一个可用端口)。然后我有一个函数来获取实际使用的端口。服务器代码是
#! /usr/bin/env python3
import asyncio #pylint: disable=unused-import
from aiosmtpd.controller import Controller
class DemoEmailHandler:
async def handle_DATA(self,server,session,envelope):
message = {
''peer'' : session.peer,''mailfrom'' : envelope.mail_from,''to'': envelope.rcpt_tos,''data'' : envelope.content}
print(message)
return ''250 Message accepted for delivery''
class DemoEmailServer:
def __init__(self):
self._handler = DemoEmailHandler()
self._server = Controller(
handler=self._handler,hostname="0.0.0.0",port=0
)
self._server.start()
self._port = self._server.server.sockets[0].getsockname()[1]
def stop(self):
"""Tell the server to stop"""
self._server.stop()
def getPort(self) -> int:
"""Return the port the SMTP (email) server is actually on"""
return self._port
SERVER = DemoEmailServer()
print(SERVER.getPort())
SERVER.stop()
我一直拒绝连接:
Traceback (most recent call last):
File "./demo_email_server.py",line 36,in <module>
SERVER = DemoEmailServer()
File "./demo_email_server.py",line 25,in __init__
self._server.start()
File "/usr/local/lib/python3.8/dist-packages/aiosmtpd-1.4.2-py3.8.egg/aiosmtpd/controller.py",line 223,in start
self._trigger_server()
File "/usr/local/lib/python3.8/dist-packages/aiosmtpd-1.4.2-py3.8.egg/aiosmtpd/controller.py",line 313,in _trigger_server
s = stk.enter_context(create_connection((hostname,self.port),1.0))
File "/usr/lib/python3.8/socket.py",line 808,in create_connection
raise err
File "/usr/lib/python3.8/socket.py",line 796,in create_connection
sock.connect(sa)
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 坏网关
我想我有一个链接问题 我的应用程序有一个错误 我有一个 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 配置文件
server {
listen 80;
server_name laravel-api.art;
index index.PHP index.html;
error_log /var/log/Nginx/error.log;
access_log /var/log/Nginx/access.log;
root /var/www/public;
location ~ \\.PHP$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\\.PHP)(/.+)$;
fastcgi_pass laravel-api:9000;
fastcgi_index index.PHP;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.PHP?$query_string;
gzip_static on;
}
}
我的 Dockerfile
``` FROM PHP:7.4-fpm
copY composer.lock composer.json /var/www/
workdir /var/www
# Install dependencies
RUN apt-get update && apt-get install -y \\
build-essential \\
libpng-dev \\
libzip-dev \\
libjpeg62-turbo-dev \\
libfreetype6-dev \\
locales \\
zip \\
jpegoptim optipng pngquant gifsicle \\
vim \\
unzip \\
git \\
curl
# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Install extensions
RUN docker-PHP-ext-install pdo_MysqL zip exif pcntl
RUN docker-PHP-ext-configure gd --with-freetype --with-jpeg
RUN docker-PHP-ext-install gd
# Install composer
RUN curl -sS https://getcomposer.org/installer | PHP -- --install-dir=/usr/local/bin --filename=composer
# Add user for laravel
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www
# copy application folder
copY . /var/www
# copy existing permissions from folder to docker
copY --chown=www:www . /var/www
RUN chown -R www-data:www-data /var/www
# change current user to www
USER www
EXPOSE 9000
CMD ["PHP-fpm"]
# production environment
FROM Nginx:stable-alpine
RUN rm /etc/Nginx/conf.d/default.conf
#copY Nginx/Nginx.conf /etc/Nginx/conf.d
copY Nginx/Nginx.conf /etc/Nginx/conf.d/default.conf
EXPOSE 80
CMD ["Nginx","-g","daemon off;"]```
和我的 docker compose 我使用外部反向代理
```
version: "3.7"
services:
#PHP Service
laravel-api:
build:
context: .
dockerfile: Dockerfile
container_name: ${containerNameServer}
restart: unless-stopped
tty: true
working_dir: /var/www
volumes:
- ./:/var/www
- ./docker-files/PHP/local.ini:/usr/local/etc/PHP/conf.d/local.ini
environment:
VIRTUAL_HOST: ${VIRTUAL_HOST_SERVER},${VIRTUAL_HOST_WWW_SERVER}
LETSENCRYPT_HOST: ${LETSENCRYPT_HOST_SERVER}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
volumes:
laravel-api:
networks:
default:
external:
name: webproxy
```
有关它适用于其他 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 平台)上运行的多容器项目。
容器共享同一个桥接网络,因为它们需要能够相互通信(端口 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 |连接被拒绝
我已经在没有任何运气的情况下解决了互联网的问题。
我收到来自 cakes Cache.PHP 的“连接被拒绝”错误
我的引擎设置为 Redis,我让 docker 正确构建映像(至少我相信我这样做),一切似乎都是正确的,但在我的一生中,我无法让缓存引擎工作。
这是我目前设置的:
DockerfileRUN 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
array(
''engine'' => ''Redis'',''prefix'' => null,''server'' => ''127.0.0.1'',''port'' => 6379,''timeout'' => 0,''persistent'' => true
)
试试:
Cache::config(''default'',[
''engine'' => $engine,''prefix'' => $prefix . ''default_'',''server'' => ''redis'',// docker || ''127.0.0.1'',<------------
''port'' => 6379,// <----------------
''path'' => CACHE . ''persistent'' . DS,''serialize'' => $serializingEngine,''duration'' => $duration,]);
Docker CodeIgniter MariaDb 连接被拒绝
如何解决Docker CodeIgniter MariaDb 连接被拒绝
我是 docker 新手,并尝试在我的机器上本地的 docker 容器上部署我的脚本。但问题是我无法连接到我的数据库,每当我查询数据库时,我都会收到错误
MysqLi::real_connect(): (HY000/2002): 连接被拒绝
我已尝试将 hostname => ''localhost''
替换为 127.0.0.1:3306
的解决方案,正如我在 docker ps 服务中看到的那样,但我无法连接。
Docker Compose 文件:
version: ''3''
services:
myapp:
image: ''bitnami/codeigniter:3''
ports:
- ''8000:8000''
volumes:
- ''.:/app''
mariadb:
image: ''bitnami/mariadb:10.3''
environment:
- ALLOW_EMPTY_PASSWORD=yes
PHPmyadmin:
image: PHPmyadmin/PHPmyadmin
restart: always
ports:
- 8080:80
volumes:
- /sessions
environment:
PMA_HOST: mariadb
我也尝试升级mariadb:latest,但没有成功。
Database.PHP
$db[''default''] = array(
''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
);
已编辑:
我还通过 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 连接被拒绝的相关信息,可以在本站进行搜索。
本文标签: