使用docker创建和运行跨平台的容器化的mssql数据库
我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库。如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用docker创建并启用sql数据库。
本章介绍了在window10专业版下如何利用docker创建mssql数据库,包括以下主题:
- 安装并验证docker
- 利用docker创建mssql实例
- 使用vs2022连接sql
首先我们看下sql自带的数据库管理工具,打开vs2022-视图-SQL Server对象资源管理器,在SQL Server实例中第一个选项就是vs自带的数据库。

在接下来的内容中我们来试着添加一个基于docker的数据库容器镜像。
1.开启虚拟化服务
在安装docker之前,需要确保虚拟化服务是开启状态。右键win图标,选择应用和功能(或者打开控制面板),点击程序和功能-启用或关闭windows功能,勾选Hyper-V,点击确定开启功能。(如果是win10家庭版的话,是看不到Hyper-V选项的,比较麻烦,需要修改注册表,但网上有教程,可以搜索并按照教程做)

2.安装Docker desktop
在docker官网根据需要选择下载安装程序,我们选择windows版本。安装完成以后docker会自动启动,任务栏会有一个鲸鱼图标,表明docker正在运行。

我们可以通过命令行验证一下docker的安装情况,输入docker --version可以看到版本信息

也可以邮件鲸鱼图标,点击About Docker Desktop查看

3.部署本地mssql数据库
第一步:拉取 SQL Server 2019 Linux 容器镜像,打开命令行,输入docker pull mcr.microsoft.com/mssql/server:2019-latest

输入docker images查看镜像

第二步:1.运行容器镜像,命令行输入docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=MyStrongPwd!2#" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
其中: ACCEPT_EULA=Y表示接受最终用户许可协议
SA_PASSWORD=MyStrongPwd!2#表示账户名sa,密码MyStrongPwd!2#
-p设置端口 1433:1433 前者表示对外提供的访问端口号,后者表示容器内部的端口号(如果这一步报错"docker: Error response from daemon: Ports are not available...",这说明端口被占用了,一般是被sqlserver服务占用了,可以打开sqlserver配置管理器将Sql server服务停止即可)
-d设置镜像名,设置为拉取的镜像mcr.microsoft.com/mssql/server:2019-latest
还可以通过 --name xxxx 为容器指定一个自定义名称,通过--hostnam xxxx设置容器主机名,如果不设置docker会随机给容器命名。
2.查看运行状况,命令行输入docker ps,可以看到正在运行

3.另外也能在Docker Desktop-Container查看刚刚创建的容器

4.使用VS验证
打开vs的SQL Server对象资源管理器,点击左上角添加 SQL Server按钮,输入信息,点击连接

完成后在SQL Server实例列表里可以看到新增了一个localhost服务器,说明vs已经连接上docker创建的sql了

因为还没有创建数据库,所以只能看到系统数据库,下一篇我们将使用EFCore创建并初始化数据库。
使用docker创建和运行跨平台的容器化的mssql数据库的更多相关文章
- Docker 创建、运行、查看、删除容器
Docker 创建.运行.查看.删除容器 Step 1: 查看docker程序是否存在, 功能是否正常. sudo docker info 若不正常请参考下文: Docker安装和程序创建 Step ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- Docker最全教程之MySQL容器化 (二十四)
前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明 运行MySQL容器镜像 1.运行MySQL容器 ...
- Docker 为 ASP.NET Core Web 应用程序生成 Docker 映像,创建并运行多个容器
1.为 ASP.NET Core 应用程序生成 Docker 映像 下载这个事例项目:https://github.com/dotnet/dotnet-docker/tree/master/sampl ...
- Docker创建镜像文件并在容器中运行
1.如何创建镜像文件 首先找到Docker ToolBox安装的路径,在路径下直接新建Dockerfile文件 在Dockerfile文件里写入的内容为: FROM docker/whalesay:l ...
- 利用docker构造并运行一个Redis容器
1.首先我们来编写一个基本的Dockerfile 在任意一个目录下 $ vi Dockerfile 内容填写如下: FROM ubuntu:14.04RUN apt-get updateRUN apt ...
- Docker创建容器
容器是镜像的一个运行实例,是基于镜像运行的轻量级环境,是一个或者一组应用. 怎样创建容器?将容器所基于的镜像名称传入即可,Docker会从本地仓库中寻找该镜像,如果本地仓库没有,则会自动从远程仓库中拉 ...
- Docker最全教程——数据库容器化(十)
终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...
- 一看就懂-Docker容器化
一.Docker简介 1.1 什么是docker docker的英文意思是 码头工人,意思就是搬运东西的意思,其实这和docker的特点是一样的,docker提供的就是一种容器化搬运东西(我们的软件. ...
随机推荐
- JAVA中内存分配的问题
JAVA中内存分配的问题 1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出 ...
- 7分钟理解JS的节流、防抖及使用场景
前言 据说阿里有一道面试题就是谈谈函数节流和函数防抖.糟了,这可触碰到我的知识盲区了,好像听也没听过这2个东西,痛定思痛,赶紧学习学习.here we go! 概念和例子 函数防抖(debounce) ...
- Java/C++实现模板方法模式---数据库操作
对数据库的操作一般包括连接.打开.使用.关闭等步骤,在数据库操作模板类中我们定义了connDB().openDB().useDB().closeDB()四个方法分别对应这四个步骤.对于不同类型的数据库 ...
- 【Android开发】Android 颜色透明度换算
透明度 透明度分为256阶(0-255),计算机上用16进制表示为(00-ff). 透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上 ...
- java中接口interface有什么用呢?举例!
接口只有方法的定义,没有方法的任何实现.那这有什么意义呢?马克-to-win: 接口就像一个服务合同.接口只关心必须得干什么而不关心如何去实现它.有 意义吗?有意义.马克-to-win:比如我们的软件 ...
- npm权限不够(安装什么都报错)
问题 Windows下使用npm安装任何包都报错, Windows下使用npm显示权限不够 如图: 解决方法 1. 方法一 使用管理员权限打开 命令窗口, 治标不治本!!!!不推荐 ...
- npx和npm的区别
npx 是 npm 的高级版本,npx 具有更强大的功能. 用途: 在项目中直接运行指令,直接运行node_modules中的某个指令,不需要输入文件路径 node-modules/.bin/babe ...
- C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)
题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...
- JAVASE If 单选择、双选择及镶嵌笔记
//单选package com.huang.boke.flowPath;import java.util.Scanner;public class test02 { public static voi ...
- 【面试普通人VS高手系列】Fail-safe机制与Fail-fast机制分别有什么作用
前段时间一个小伙伴去面试,遇到这样一个问题. "Fail-safe机制与Fail-fast机制分别有什么作用" 他说他听到这个问题的时候,脑子里满脸问号.那么今天我们来看一下,关于 ...