轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
cilerler/microsoft-mssql-tools
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

microsoft-mssql-tools Docker 镜像下载 - 轩辕镜像

microsoft-mssql-tools 镜像详细信息和使用指南

microsoft-mssql-tools 镜像标签列表和版本信息

microsoft-mssql-tools 镜像拉取命令和加速下载

microsoft-mssql-tools 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

microsoft-mssql-tools
cilerler/microsoft-mssql-tools

microsoft-mssql-tools 镜像详细信息

microsoft-mssql-tools 镜像标签列表

microsoft-mssql-tools 镜像使用说明

microsoft-mssql-tools 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

结合Microsoft SQL Server命令行工具与PowerShell的Docker镜像,可在单个容器环境中运行SQL操作和PowerShell脚本,支持数据库迁移、批量数据处理及CI/CD自动化等场景。
0 次下载activecilerler镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

microsoft-mssql-tools 镜像详细说明

microsoft-mssql-tools 使用指南

microsoft-mssql-tools 配置说明

microsoft-mssql-tools 官方文档

Microsoft MSSQL Tools with PowerShell Docker镜像

镜像概述

本Docker镜像基于mcr.microsoft.com/mssql-tools:latest构建,整合了Microsoft SQL Server命令行工具与PowerShell 7+,提供统一的容器环境用于执行SQL操作和PowerShell脚本,简化数据库相关任务的自动化与部署流程。

基础镜像组件

该镜像包含以下核心组件:

  • sqlcmd - SQL Server命令行实用工具
  • bcp - 批量复制程序工具
  • PowerShell 7+ - 跨平台PowerShell环境

核心功能与特性

  • 集成SQL Server命令行工具与PowerShell脚本环境
  • 支持交互式PowerShell会话与非交互式命令执行
  • 提供文件挂载功能,可运行本地SQL脚本
  • 支持环境变量注入,简化连接参数配置
  • 兼容CI/CD管道集成,实现数据库自动化部署
  • 支持批量数据导入导出(bcp)操作

使用场景

  • 通过PowerShell执行sqlcmd命令运行SQL脚本
  • 数据库迁移与部署自动化
  • CI/CD管道中的数据库操作集成
  • 批量数据导入/导出(bcp)任务
  • 结合PowerShell脚本逻辑实现复杂SQL操作流程

前提条件

  • Windows系统安装Docker Desktop
  • 可访问的SQL Server实例(本地或远程)

快速入门

拉取镜像

docker pull cilerler/microsoft-mssql-tools:latest

基础用法 - 交互式PowerShell会话

docker run -it --rm cilerler/microsoft-mssql-tools:latest pwsh

进入容器后,可直接使用sqlcmd:

sqlcmd -S your-server.database.windows.net -U your-username -P your-password -d your-database -Q "SELECT @@VERSION"

常见使用模式

从PowerShell执行SQL查询

docker run --rm cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'your-server' -U 'your-username' -P 'your-password' -d 'your-database' -Q 'SELECT GETDATE()'"

运行SQL脚本文件

首先挂载包含SQL脚本的本地目录:

docker run --rm -v ${PWD}:/scripts cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'your-server' -U 'your-username' -P 'your-password' -d 'your-database' -i /scripts/your-script.sql"

使用环境变量配置连接

docker run --rm `
    -e SQL_SERVER='your-server' `
    -e SQL_USER='your-username' `
    -e SQL_PASSWORD='your-password' `
    -e SQL_DATABASE='your-database' `
    cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S `$env:SQL_SERVER -U `$env:SQL_USER -P `$env:SQL_PASSWORD -d `$env:SQL_DATABASE -Q 'SELECT DB_NAME()'"

执行包含SQL操作的PowerShell脚本

创建PowerShell脚本(db-operations.ps1):

# db-operations.ps1
$server = $env:SQL_SERVER
$user = $env:SQL_USER
$password = $env:SQL_PASSWORD
$database = $env:SQL_DATABASE

Write-Host "连接到 $server..."

$result = sqlcmd -S $server -U $user -P $password -d $database -Q "SELECT COUNT(*) FROM sys.tables" -h -1

Write-Host "表数量: $result"

运行脚本:

docker run --rm `
    -v ${PWD}:/scripts `
    -e SQL_SERVER='your-server' `
    -e SQL_USER='your-username' `
    -e SQL_PASSWORD='your-password' `
    -e SQL_DATABASE='your-database' `
    cilerler/microsoft-mssql-tools:latest pwsh /scripts/db-operations.ps1

批量复制(bcp)操作

导出数据到文件:

docker run --rm -v ${PWD}:/data cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "bcp 'SELECT * FROM YourTable' queryout /data/output.dat -S 'your-server' -U 'your-username' -P 'your-password' -d 'your-database' -c"

从文件导入数据:

docker run --rm -v ${PWD}:/data cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "bcp YourTable in /data/input.dat -S 'your-server' -U 'your-username' -P 'your-password' -d 'your-database' -c"

连接到本地SQL Server

若在Windows主机上运行本地SQL Server,从容器连接方法:

# 使用host.docker.internal引用Windows主机
docker run --rm cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'host.docker.internal' -U 'sa' -P 'YourPassword' -Q 'SELECT @@SERVERNAME'"

连接到其他容器中的SQL Server

若SQL Server运行在Docker容器中:

# 创建网络
docker network create sql-network

# 运行SQL Server(示例)
docker run -d --name sqlserver --network sql-network `
    -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrong@Password" `
    mcr.microsoft.com/mssql/server:2022-latest

# 在同一网络中运行mssql-tools容器
docker run --rm --network sql-network cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'sqlserver' -U 'sa' -P 'YourStrong@Password' -Q 'SELECT @@VERSION'"

Docker Compose配置

创建docker-compose.yml:

version: '3.8'

services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2022-latest
    environment:
      ACCEPT_EULA: "Y"
      SA_PASSWORD: "YourStrong@Password"
    ports:
      - "1433:1433"

  sql-tools:
    image: cilerler/microsoft-mssql-tools:latest
    depends_on:
      - sqlserver
    environment:
      SQL_SERVER: sqlserver
      SQL_USER: sa
      SQL_PASSWORD: "YourStrong@Password"
      SQL_DATABASE: master
    volumes:
      - ./scripts:/scripts
    command: pwsh -Command "Start-Sleep -Seconds 10; sqlcmd -S $$env:SQL_SERVER -U $$env:SQL_USER -P $$env:SQL_PASSWORD -i /scripts/init.sql"

运行:

docker-compose up

CI/CD集成

Azure DevOps管道示例

steps:
- task: Docker@2
  displayName: '运行数据库迁移'
  inputs:
    command: 'run'
    arguments: >
      --rm
      -v $(Build.SourcesDirectory)/database:/scripts
      -e SQL_SERVER=$(SqlServer)
      -e SQL_USER=$(SqlUser)
      -e SQL_PASSWORD=$(SqlPassword)
      -e SQL_DATABASE=$(SqlDatabase)
      cilerler/microsoft-mssql-tools:latest
      pwsh /scripts/migrate.ps1

GitHub Actions示例

- name: 运行数据库脚本
  run: |
    docker run --rm `
      -v ${{ github.workspace }}/database:/scripts `
      -e SQL_SERVER=${{ secrets.SQL_SERVER }} `
      -e SQL_USER=${{ secrets.SQL_USER }} `
      -e SQL_PASSWORD=${{ secrets.SQL_PASSWORD }} `
      -e SQL_DATABASE=${{ secrets.SQL_DATABASE }} `
      cilerler/microsoft-mssql-tools:latest `
      pwsh /scripts/deploy.ps1
  shell: pwsh

高级PowerShell场景

使用SqlServer PowerShell模块

可在运行时安装SqlServer模块:

docker run -it --rm cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "Install-Module -Name SqlServer -Force -AllowClobber; Import-Module SqlServer; Invoke-Sqlcmd -ServerInstance 'your-server' -Username 'your-username' -Password 'your-password' -Query 'SELECT @@VERSION'"

PowerShell脚本错误处理

# check-database.ps1
$ErrorActionPreference = "Stop"

try {
    $result = sqlcmd -S $env:SQL_SERVER -U $env:SQL_USER -P $env:SQL_PASSWORD -Q "SELECT 1" -h -1
    
    if ($LASTEXITCODE -eq 0) {
        Write-Host "连接成功!"
        exit 0
    } else {
        Write-Error "连接失败,退出码: $LASTEXITCODE"
        exit 1
    }
} catch {
    Write-Error "错误: $_"
    exit 1
}

sqlcmd常用选项

  • -S - 服务器名称或IP地址
  • -U - 用户名(SQL Server身份验证)
  • -P - 密码(SQL Server身份验证)
  • -E - 使用Windows身份验证(Linux容器中不适用)
  • -d - 数据库名称
  • -Q - 执行查询后退出
  • -i - 输入文件(SQL脚本)
  • -o - 输出文件
  • -h -1 - 移除输出中的标题
  • -s - 列分隔符
  • -W - 移除尾随空格
  • -C - 信任服务器证书(用于加密连接)

安全注意事项

切勿在脚本或命令历史中硬编码密码,应使用环境变量或安全的密钥管理:

# 从环境变量读取
$password = $env:SQL_PASSWORD

# 或在Swarm模式中使用Docker Secrets
docker run --rm `
    --secret sql-password `
    cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'your-server' -U 'your-username' -P (Get-Content /run/secrets/sql-password) -Q 'SELECT 1'"

故障排除

连接问题

若连接失败,验证连接字符串:

docker run --rm cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -S 'your-server' -U 'your-username' -P 'your-password' -Q 'SELECT 1' -C"

使用-C参数信任服务器证书(适用于加密连接)。

检查已安装版本

docker run --rm cilerler/microsoft-mssql-tools:latest pwsh -Command `
    "sqlcmd -?; Write-Host '---'; pwsh --version"

本地构建镜像

如需本地构建该镜像:

# 克隆或创建Dockerfile后执行
docker build -t cilerler/microsoft-mssql-tools:latest .

许可证

本镜像基于Microsoft官方SQL Server工具镜像构建。有关sqlcmd和bcp实用工具的许可条款,请参阅Microsoft的许可条款。

贡献

欢迎提交issue和拉取请求以改进此镜像和文档。

链接

  • Microsoft SQL Server工具文档
  • sqlcmd实用工具
  • bcp实用工具
  • PowerShell文档
查看更多 microsoft-mssql-tools 相关镜像 →
rancher/rke-tools logo
rancher/rke-tools
by Rancher by SUSE
认证
暂无描述
14100M+ pulls
上次更新:3 个月前
temporalio/admin-tools logo
temporalio/admin-tools
by Temporal Technologies Inc
认证
以工作流即代码方式构建和运行弹性应用的Docker镜像
810M+ pulls
上次更新:23 天前
airbyte/source-mssql logo
airbyte/source-mssql
by Airbyte
认证
暂无描述
1M+ pulls
上次更新:6 天前
rancher/k3d-tools logo
rancher/k3d-tools
by Rancher by SUSE
认证
支持k3d(https://k3d.io)的辅助容器镜像
45M+ pulls
上次更新:3 年前
demisto/py3-tools logo
demisto/py3-tools
by Demisto, A Palo Alto Networks Company
认证
暂无描述
1M+ pulls
上次更新:6 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.