Docker容器总是显示ssl连接错误

2024-05-01

我正在开始使用 docker compose,并一直在研究简单的演示 Flask 应用程序。问题是,我在一个组织内部运行这个程序,该组织以左右抛出 SSL 错误的方式拦截所有通信。他们为我们提供了需要安装的三个根证书,我通常已经让这些证书在我自己的机器上工作,但是当涉及到让这些证书在 docker-compose 部署中工作时我迷失了。

当我运行 docker-compose up 时,我得到以下信息:

$ sudo docker-compose up 
Creating network "project_default" with the default driver
Building web
Step 1/5 : FROM python:3.4-alpine
3.4-alpine: Pulling from library/python
81033e7c1d6a: Pull complete
9b61101706a6: Pull complete
415e2a07c89b: Pull complete
f22df7a3f000: Pull complete
8c16bf19c1f9: Pull complete
Digest: sha256:fe436cb066394d81cf49448a04dec7c765082445a500bc44f1ae5e8a455793bd
Status: Downloaded newer image for python:3.4-alpine
 ---> 5c72717ec319
Step 2/5 : ADD . /code
 ---> a5790c0e3e94
Removing intermediate container 052c614e41d0
Step 3/5 : WORKDIR /code
 ---> a2ea9acb3005
Removing intermediate container 77f2375ca0a6
Step 4/5 : RUN pip install -r requirements.txt
 ---> Running in 5f4fe856776d
Collecting flask (from -r requirements.txt (line 1))
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb0061f1d30>: Failed to establish a new connection: [Errno -3] Try again',)': /simple/flask/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb0061f19b0>: Failed to establish a new connection: [Errno -3] Try again',)': /simple/flask/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb0061f1828>: Failed to establish a new connection: [Errno -3] Try again',)': /simple/flask/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb0061f1588>: Failed to establish a new connection: [Errno -3] Try again',)': /simple/flask/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb0061f1390>: Failed to establish a new connection: [Errno -3] Try again',)': /simple/flask/
  Could not find a version that satisfies the requirement flask (from -r requirements.txt (line 1)) (from versions: )
No matching distribution found for flask (from -r requirements.txt (line 1))

Pip 无法安装任何东西。

docker-compose.yml 文件如下所示:

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
  redis:
    image: "redis:alpine"

主 Dockerfile 如下所示:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

在这种特殊情况下有什么办法可以使这项工作有效吗?是否有针对此类问题的通用解决方案,允许我将 SSL 证书传递给部署了 SSL 证书的任何容器并使用它们?


这实际上并不是一个特定于 docker 的问题:实际上,您是在问“如何在 Linux 下安装证书颁发机构”?无论您是在容器内部还是外部运行 ssl 客户端,答案都是相同的。

您的Python镜像基于alpine,alpine使用“ca-certificates”包来管理CA证书。要安装本地 CA 证书,您需要 (a) 将它们复制到/usr/share/ca-certificates目录和 (b) 运行update-ca-certificates.

例如,将类似的内容添加到您的 Dockerfile 中(在您的pip install):

COPY company-ca.crt /usr/share/ca-certificates
RUN update-ca-certificates
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker容器总是显示ssl连接错误 的相关文章

  • FreeBSD 可以在 Docker 中运行吗?

    我一直在寻找一个Docker的图像FreeBSD但找不到 FreeBSD可以在docker中运行吗 如果没有 为什么不呢 从未来编辑 不 你不能 以下项目都没有超越原型 从技术上讲是可以的 但是你需要一个 FreeBSD 主机来完成它 而
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • 如何管理AWS ECS中docker镜像的版本?

    AWS ECS 服务指向一个任务定义 其中包含 docker 镜像的名称 包括标签 因此 当我创建新版本的 docker 映像时 我有两种可能性 将任务定义更新到新版本 然后更新服务以指向任务定义的新版本 使用一些标签指向最后一个版本 假设
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • Composer 文件中的 Docker 健康检查

    我尝试将新的健康检查集成到我的 docker 系统中 但我真的不知道如何以正确的方式进行 问题是 我的数据库容器需要比启动主应用程序的容器更多的时间来启动和初始化数据库 结果 主容器无法正确启动 导致数据库连接丢失 我编写了一个 healt
  • 如何将字符串转换为浮点数? [复制]

    这个问题在这里已经有答案了 我需要转换变量 pi string 3 1415926 变成一个浮子 这是我正在处理的事情 你的线路应该是pi float float pi string float pi string 是一个浮点值 你不能给它
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 什么会阻止 Docker 容器中运行的代码连接到单独服务器上的数据库?

    我有一个在 Ubuntu 14 04 上的 Docker 容器中运行的 NET Core 1 1 应用程序 它无法连接到在单独服务器上运行的 SQL Server 数据库 错误是 未处理的异常 System Data SqlClient S
  • Tensorflow-GPU安装导入错误:DLL加载失败:找不到指定的模块

    好吧 我知道这可能已经回答了问题 但我已经尝试了 stackoverflow 上建议的几乎所有技巧来安装 tensorflow gpu 并在官方文档上建议 但没有运气 我遇到了同样的错误 首先我尝试过this https towardsda
  • 如何使用 Docker 访问输出文件

    我正在编写一个 C 程序 并想在其上使用 Docker 这Dockerfile看起来像下面这样 FROM gcc 7 2 0 ENV MYP repo WORKDIR MYP COPY MYP RUN bin sh c make ENTRY
  • Docker 错误绑定:地址已在使用中

    当我跑步时docker compose up在我的 Docker 项目中 它失败并显示以下消息 启动用户层代理时出错 监听 tcp 0 0 0 0 3000 绑定 地址已在使用中 netstat pna grep 3000 显示这个 tcp
  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • Python pip install pyarrow错误,无法执行'cmake'

    我尝试在 EMR 集群的主实例上安装 pyarrow 但总是收到此错误 hadoop ip XXX XXX XXX XXX sudo usr bin pip 3 4 install pyarrow Collecting pyarrow Do
  • pytesseract 无法从图像中识别复杂的数学公式

    我在用pytesseractpython 中的模块 pytesseract从图像中识别文本 但它不适用于包含复杂数学公式 例如根 推导 积分数学问题或方程 的图像 代码2 py Import modules from PIL import

随机推荐

  • 将 WPF 单选按钮设置为具有正确 IsEnabled 行为的切换按钮

    我需要将一些分组单选按钮设置为切换按钮 为此 我将以下样式应用于单选按钮 Style StaticResource x Type ToggleButton 这给了我想要的风格 但我注意到一个恼人的副作用 我需要能够在禁用控件时更改所选按钮
  • 使用android应用程序的http post方法发送json对象

    我正在尝试将 JSON 对象发送到我的 php web 服务 我已经提到了这个网址 http www josecgomez com 2010 04 30 android accessing restfull web services usi
  • 根据其他列设置列的值

    我有一个数据框 如下所示 ID Score New ID New Score 123 5 456 456 1 789 789 0 123 我想为 New ID 列提供相同的分数 只是顺序不同 期望的结果 ID Score New ID Ne
  • 颤动中的多个依赖下拉菜单

    我正在尝试在颤动上构建多个依赖的下拉菜单 第二个依赖于第一个 这是我实现的下拉列表的代码 Container child new DropdownButton
  • C# CreateSymbolicLink 不遵循共享访问

    我不确定这只是 C 问题还是 Windows 限制 我有一台运行我的程序的服务器 它在共享文件夹中创建符号链接 我可以通过此链接从具有正常磁盘路径和共享路径的服务器进行访问 如果我尝试与其他电脑访问同一共享 我将无法访问链接的文件 我确实可
  • Pandas如何按列按间隔分割数据框

    我有一个巨大的数据框 其中有一个名为的日期时间类型列dt 数据框排序基于dt已经 我想根据以下内容将数据帧拆分为多个数据帧dt 每个数据帧包含行1 hr range Split dt text 0 20160811 11 05 a 1 20
  • IE 下的 Http 请求速度变慢

    在我的 javascript 应用程序中工作时 我注意到使用 IE 11 时 相同的 ajax 请求时间最多延长 10 倍 响应大小完全相同 12 6KB 我看到的唯一区别是 IE 添加 Pragma no cache 不是铬 Chrome
  • 在 docker 容器内运行 vite 开发服务器

    我有一个 Vue cli 应用程序 我正在尝试将其转换为 vite 我正在使用 Docker 来运行服务器 我看了几个教程 并让 vite 在开发模式下运行 没有错误 但是 浏览器无法访问该端口 也就是说 当我在 macbook 的命令行上
  • Git - 如何压缩对被忽略文件的更改而不丢失这些更改?

    我想使用 git 保存应用程序随时间使用的实际依赖项的历史记录 其保真度比我从包管理器获得的保真度更高 我正在使用这些分支 master 仅源代码 依赖于 gitignore 构建 源代码和依赖项 build TIMESTAMP 用于强制提
  • 从 Silverlight OOB 访问注册表

    我可以访问吗Registry from Silverlight Out Of Browser 我只想搜索 读取键并获取键值对 这可能吗 或者 有没有其他方法 例如运行powershell script 或启动其他一些 exe 来了解这些值
  • Python @property 与方法性能 - 使用哪一个?

    我编写了一些使用对象属性的代码 class Foo def init self self bar baz myFoo Foo print myFoo bar 现在我想做一些花哨的计算来返回bar 我可以用 property使方法充当属性ba
  • Ionic 4无法导入自定义组件不是已知元素

    我是 Ionic 新手 我想创建一个带有可扩展项目的自定义列表视图 如下链接 https www joshmorony com creating an accordion list in ionic https www joshmorony
  • 相当于使用 for-loop 代替 do-while-loop

    我想知道 c 中等效的 for 循环或任何其他循环组合是什么 而不是使用 do while 循环 任何类型的循环都可以通过无限 永远 循环和条件循环的组合来构造break陈述 例如 要转换 do
  • 在 REP MOVSW 之前 PUSH CS / POP DS 的目的是什么?

    为什么在下面的代码中我们压入代码段 PUSH CS 然后将其弹出到数据段 POP DS 我将这些行明确指定为 line1 和 line2 请告诉我 MOVSW 在这里是如何工作的 IF HIGHMEMORY PUSH DS MOV BX D
  • 为什么在可变字典上调用 setValue:forKeyPath 不会抛出未知键路径的异常?

    我有以下代码 NSMutableDictionary dict NSMutableDictionary dictionary defs setObject NSNumber numberWithInt 100 forKey test1 te
  • 无法获取 https://gerrit.googlesource.com/git-repo/clone.bundle

    我尝试按照以下说明创建一个 git 存储库 source android com source downloading html installing repo 但是当我尝试在工作目录中初始化存储库时 使用 Ubuntu 出现以下错误 wo
  • “publish_actions”扩展权限是否可用于测试?

    我一直在尝试使用 publish actions 扩展权限来测试分数和成就 但是当我添加它时 它不会显示在 权限请求 页面中 就好像它被忽略了一样 我尝试了几种不同的方法 loginUrl facebook gt getLoginUrl a
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • 删除并加入同一个表

    是否可以执行连接同一个表的删除查询语句 我尝试过各种连接 内部 左侧 但没有运气 mysql 返回错误 我需要的例子 DELETE a FROM t1 AS a INNER JOIN t1 AS b USING some field b W
  • Docker容器总是显示ssl连接错误

    我正在开始使用 docker compose 并一直在研究简单的演示 Flask 应用程序 问题是 我在一个组织内部运行这个程序 该组织以左右抛出 SSL 错误的方式拦截所有通信 他们为我们提供了需要安装的三个根证书 我通常已经让这些证书在