Run sql server in docker

这篇具有很好参考价值的文章主要介绍了Run sql server in docker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Pull docker image

Pull the latest image of SQL Server 2022

docker pull mcr.microsoft.com/mssql/server:2022-latest

Run in container

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 11433:1433 --name <sqlserver2022> --hostname <sqlserver2022> -d mcr.microsoft.com/mssql/server:2022-latest

It's recommended to use the same string for 'name' and 'hostname', could be 'sqlserver2022' or anything you like.

Connect to SQL Server

1. Start an interactive bash shell inside your running container

docker exec -it sqlserver2022 "bash"

2. Inside the bash shell, connect locally with 'sqlcmd'

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<password>"

3. You can connect with SSMS too,  using the public IP address, followed by comma separator and then the port (xxx.xx.xx.xxx,port)

Run sql server in docker

 Persist DB

Using data volume containers

docker volume create sqlserver-2022
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 11433:1433 --name <sqlserver2022> --hostname <sqlserver2022> -v sqlserver-2022:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest

The target should be '/var/opt/mssql', otherwise it won't work.

Run sql server in docker

Mount a host directory as data volume

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 11433:1433 --name <sqlserver2022> --hostname <sqlserver2022> -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2022-latest

Connect to SQL Server from another container

1. Run the container with the specified network <network-name>

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 11433:1433 --name <sqlserver2022> --hostname <sqlserver2022> -v sqlserver-2022:/var/opt/mssql --network <network-name> --network-alias <network-alias> -d mcr.microsoft.com/mssql/server:2022-latest

 2. Update app's DB connection string, the host name in 'Data Source' should be the <network-alias> defined in the previous step 

"ConnectionStrings": {
    "Xxx-Context": "Data Source=<network-alias>,1433;Database=<DB-name>;User ID=sa;Password=<password>;MultipleActiveResultSets=true;Encrypt=False" 
}

3. Run the app container in the same network <network-name>

docker run -p 32774:80 --name <app-name> --network <network-name> -d <app-image>

 

Instead of launching each container separately, you could also choose docker-compose to launch all the containers with a single command, and no need to specifically create the network, docker-compose will create it automatically for you.

services:
  <service-name>: //service-name automatically become a network alias 
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: <container-name>
    ports:
      - 21433:1433
    environment:
      - ACCEPT_EULA=y
      - MSSQL_SA_PASSWORD=<password>
    volumes:
      - <volume-name>:/var/opt/mssql

  <service-name>:
    image: <app-image-name>
    container_name: <container-name>
    ports:
      - 32774:80

volumes:
  <volume-name>: 
    external: true //mark external to 'true' to use a volume outside the compose project, otherwise a new [COMPOSE_PROJECT_NAME]_<volume-name> volume will be automatically created and used.

networks:
  default: // The auto created network is called [COMPOSE_PROJECT_NAME]_default by default, you can custmized it in networks attribute
    name: <customized-network-name>

The [COMPOSE_PROJECT_NAME] environment is the compose file's parent folder name by default, while you can set/redefine it through the command line parameter '-p', or use the .env file to make it trackable.

COMPOSE_PROJECT_NAME=<costomized-project-name>

Finally, run the compose.yaml file to launch all containers

docker compose up -d

 

References:

https://learn.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash文章来源地址https://www.toymoban.com/news/detail-748999.html

到了这里,关于Run sql server in docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker安装MS SQL Server并使用Navicat远程连接

    Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API),包括 T-SQL、ADO.NET、ODBC、OLE DB 等,并支持

    2024年02月07日
    浏览(39)
  • 【C#】Sql Server 设置IN查询方法内的参数,固定参数、动态参数以及通过分隔含有逗号隔开的字符串转数据集

    在平时使用sql语句查询时,in查询肯定少不了,多数用于一些数据统计或者测试类。in查询并不建议放到实际常用的查询列表里。 此篇文章主要简单聊聊,in查询方法内的参数设置方式,以及通过分隔函数将含有逗号隔开的字符串转为数据集进行查询 在 SQL Server 中,你可以使

    2024年02月15日
    浏览(54)
  • 构建高可用性的 SQL Server:Docker 容器下的主从同步实现

    摘要: 本文将介绍如何在 Docker 环境下搭建 MS SQL Server 的主从同步,帮助读者了解主从同步的原理和实现方式,进而提高数据的可靠性和稳定性。 在当今信息化的时代,数据的安全性和稳定性显得尤为重要。数据库是许多企业和组织存储和管理数据的核心,因此如何保证数据

    2024年02月10日
    浏览(70)
  • [ 云原生 | Docker ] 构建高可用性的 SQL Server:Docker 容器下的主从同步实现指南

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2023年04月15日
    浏览(61)
  • 全网多种方法解决You have an error in your SQL syntax; check the manual that corresponds to your MySQL server

    今天在调试低代码的接口,突然报出如下的错误: 即 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \\\'desc,name,is_deleted ) VALUES(\\\'测试哈\\\',\\\'测试哈\\\',\\\'测试项目\\\',1 )\\\' at line 11 。 于是,查看控制台报出的详细错误信息,如下图所示

    2024年02月15日
    浏览(51)
  • Eclipse中Run As On Server和Run As Java Application

    run java application (作为Java应用程序运行)是运行 java main方法 。 run on server是 启动一个web 应用服务器 。 Eclipse中可以创建java project 也可以创建java web poject 。java project是可以直接在命令行运行,或者直接在Eclipse中运行 此时运行是jvm直接调用了main方法。 Eclipse中创建的java web程

    2024年02月22日
    浏览(37)
  • Docker打包容器并跨服务器传输重建加载load镜像Unable to find image :latest问题解决 及 Docker在容器未启动的情况下如何修改容器中文件

        使用docker就是因为docker可以快速进行多服务器部署,所以需要对部署好的环境进行打包复制并快速在其它的服务器上进行重建。     其实使用起来非常简单,使用docker export从运行的容器中导出文件,,使用import命令生成镜像批量传至目标服务器然后在目标服务器上进行

    2024年04月17日
    浏览(49)
  • Win11中docker镜像Failed to run image. Error invoking remote method ‘docker-run-container‘: Error: conne

    Failed to run image. Error invoking remote method \\\'docker-run-container\\\': Error: connect ENOENT \\\\.pipedockerDesktopEngine 使用管理员权限在cmd中执行 : 启动Docker容器: 使用管理员权限在cmd中执行 : 重新启动Docker就可以正常启动镜像了(如果不行的话,就重启电脑试试)。 初步怀疑可能是未关闭容

    2024年02月11日
    浏览(50)
  • Sql Server类型转换,Sql Server函数

    CONVERT(数据类型, 表达式, 样式)    --样式可以没有 CAST(表达式 as 数据类型) DateOfBirth是DateTime类型,不转换会报错 ------------------函数----------------- 计算日期差:datediff(日期格式,日期1, 日期2) 向下取整:Floor() 样例:

    2024年02月16日
    浏览(47)
  • 掌握SQL Server实战之SQL Server的安装

    大家好,我是沐风晓月,本文SQL Server的介绍收录于[《数据库学习专栏》]中的SQL Server 专栏,此专栏带你从零开始学习SQL server,持续更新中,欢迎点赞收藏。 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云博客专家 😉😉

    2024年02月02日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包