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

如何在openjdk docker镜像中安装sqlcmd以连接Azure SQL Server?

参考实现思路示意图:
实现思路示意图

问题解答

是否需要安装.NET Framework

  • 完全不需要额外安装.NET Framework或任何.NET相关运行时
    • 当前主流可用的sqlcmd工具均无.NET依赖:
      • 传统官方mssql-tools包中的sqlcmd:仅依赖ODBC Driver for SQL Server即可运行
      • 新一代跨平台go-sqlcmd:由Go语言编译为独立二进制,零额外系统依赖

OpenJDK Docker镜像安装sqlcmd操作步骤

以下步骤适配Debian/Ubuntu系基础的OpenJDK镜像,如使用Alpine、RHEL系镜像可对应调整包管理命令。

方案1:安装官方传统mssql-tools版本

Dockerfile示例如下:

# 基于OpenJDK 17 slim版基础镜像,可替换为你需要的openjdk版本
FROM openjdk:17-slim

RUN apt-get update && apt-get install -y curl gnupg2 lsb-release && \
    # 导入微软官方GPG密钥、添加mssql软件源
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/mssql-release.list && \
    # 接受许可协议并安装ODBC驱动和sqlcmd工具
    apt-get update && \
    ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18 && \
    # 将sqlcmd所在路径加入系统环境变量
    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> /etc/profile && \
    # 清理缓存缩小镜像体积
    apt-get clean && rm -rf /var/lib/apt/lists/*

安装完成后可执行sqlcmd -?验证安装是否生效。

方案2:安装轻量版go-sqlcmd(推荐)

无需添加额外软件源,直接下载独立二进制即可使用,镜像体积更小:

FROM openjdk:17-slim

RUN apt-get update && apt-get install -y curl tar && \
    # 下载对应架构的go-sqlcmd二进制压缩包
    curl -LO https://github.com/microsoft/go-sqlcmd/releases/latest/download/sqlcmd-linux-x64.tar.gz && \
    tar -zxf sqlcmd-linux-x64.tar.gz && \
    mv sqlcmd /usr/local/bin/ && \
    # 清理冗余文件
    rm sqlcmd-linux-x64.tar.gz && \
    apt-get remove -y curl tar && apt-get autoremove -y && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:57:05