docker - SSL 握手在 docker 容器上不起作用
问题描述
docker
我需要在需要的容器上调用一个资源L2TP/IPsec VPN
。VPN 设置正常(我在直接从笔记本电脑调用时收到 200 状态代码响应)。但是后来我从 docker 容器连接卡住了ssl handshake.
我应该如何设置 docker so 容器,以便行为与我的笔记本电脑相同?
Python回溯:
Traceback (most recent call last):
File "/sp/server/env/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 345, in _make_request
self._validate_conn(conn)
File "/sp/server/env/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 844, in _validate_conn
conn.connect()
File "/sp/server/env/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 326, in connect
ssl_context=context)
File "/sp/server/env/lib/python3.6/site-packages/requests/packages/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/local/lib/python3.6/ssl.py", line 407, in wrap_socket
_context=self, _session=session)
File "/usr/local/lib/python3.6/ssl.py", line 817, in __init__
self.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 1077, in do_handshake
self._sslobj.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:835: The handshake operation timed out
dockerfiles/ServerDockerfile:
FROM python:3.6-jessie
RUN pip install virtualenv
ADD . /sp
WORKDIR /sp/server
# Register api port
EXPOSE 8090
CMD make run
码头工人-compose.yml:
version: '3'
services:
server:
restart: always
build:
context: .
dockerfile: dockerfiles/ServerDockerfile
volumes:
- .:/sp
ports:
- "8090:8090"
我试图从docker
我计算机上的其他容器中调用相同的资源,但情况总是相同 - 卡在ssl
握手中。
解决方案
我通过将docker-compose.yml
network_mode参数值设置为host
.
码头工人-compose.yml:
version: '3'
services:
server:
restart: always
build:
context: .
dockerfile: dockerfiles/ServerDockerfile
volumes:
- .:/sp # mount repo dir to container for development
ports:
- "8090:8090"
network_mode: "host"
推荐阅读
- xml - 将格式错误的 HTML 转换为分层 XML
- angular - 角电子应用程序未启动并自动退出
- r - R - 组合冲积地块
- powerbi - 如何在 PowerBI 中获取 WorkspaceId?
- perforce - Perforce DVCS 解析失败并且 P4 Fetch 与 P4V Fetch 不匹配
- json - 将 JSON 数据发布到 Dotnet Core webapi
- php - Guzzle getTransferTime() 究竟测量了什么?
- asp.net - 客户端 cookie 滑动时刷新 IdentityServer cookie
- gnu-make - make 变量的第二次扩展
- elasticsearch - ElasticSearch:配置 delete_by_query、update_by_query 以重试 version_conflicts