You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器连接SQL Server报错:无法找到ODBC驱动

Ubuntu 22.04 Docker容器中SQL Server ODBC驱动缺失问题解决方法

问题描述

本地Windows环境下写入SQL Server的代码运行正常,但在Ubuntu 22.04构建的Docker容器里运行时,始终报找不到ODBC驱动的错误,尝试以下操作均未解决:

  • 将配置文件application-docker.cfg中的DRIVER设为SQL Server,报错:
    sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)")
  • 改为指定路径/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.1.1,仍提示找不到文件
  • 设为ODBC Driver 17 for SQL Server,并在Dockerfile添加RUN apt-get install -y msodbcsql17 mssql-tools,构建镜像时提示:
0.915 E: Unable to locate package mssql-tools```

## 解决步骤
Ubuntu 22.04默认软件源不包含微软ODBC驱动包,需先添加微软官方源再安装,修改Dockerfile如下:

1. 添加微软GPG密钥和软件源
```dockerfile
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
  1. 更新源并安装ODBC驱动18版本(Ubuntu22.04适配18版本,17版本源支持存在问题)
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18
  1. 可选:将mssql工具路径加入环境变量,方便使用sqlcmd等工具
RUN echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc

配置文件调整

驱动安装完成后,将application-docker.cfg中的DRIVER改为:

DRIVER=ODBC Driver 18 for SQL Server

验证安装

容器启动后,执行以下命令检查驱动是否安装成功:

odbcinst -q -d

输出中出现ODBC Driver 18 for SQL Server即表示安装成功。

内容的提问来源于stack exchange,提问作者Federicofkt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:07:21