docker for mssql

文章介绍了如何使用Docker拉取并运行MSSQLServerLinux镜像,设置环境变量如ACCEPT_EULA和SA_PASSWORD,以及端口映射。接着展示了如何连接到sqlcmd创建数据库和表。还提到了安装sqlserver2019的过程,包括下载镜像、创建主机映射目录、启动实例。最后提到了使用Navicat进行连接测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搜索mssql image

docker pull microsoft/mssql-server-linux

创建并运行容器

docker run --name MSSQL_1433 -m 512m -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=yourStrong(!)Password’ -p 1433:1433 -d microsoft/mssql-server-linux

例如:

docker run --name mssql_1433 -m 512m -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=Satest1230$’ -p 1433:1433 -d microsoft/mssql-server-linux

docker run --name fusion_1433 -m 1024m -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=Satest1230$’ -p 1433:1433 -v /home/myvolume/mssql_fusion:/var/opt/mssql -d microsoft/mssql-server-linux

docker run --name mssql_1431 -m 512m -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=Satest1230$’ -p 1431:1431 -d microsoft/mssql-server-linux

docker run --name sqlserver -m 1024m --restart=always -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=Satest1230$’ -p 1433:1433 -d microsoft/mssql-server-linux


登入容器

docker exec -it MSSQL_1433 /bin/bash

连接到sqlcmd

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘yourStrong(!)Password’

例如

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘Satest1230.’

这里我出现没连上,后来进入相应目录在试试此命令

执行SQL语句创建数据库

CREATE DATABASE testDB
go

注意 这里的go 表示结束输入,每创建一个语句就要加go;

创建表

CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

install mssql 2019

下载

拉取sqlserver2019镜像
docker pull registry.cn-hangzhou.aliyuncs.com/newbe36524/server:2019-latest
创建主机映射目录
mkdir -p /docker_volume/mssql
修改主机映射目录权限
chown -R 10001:0 /docker_volume/mssql

启动实例
docker run --name mssql \
    --net=host \
    -e 'ACCEPT_EULA=Y' \
    -e 'MSSQL_PID=PMBDC-FXVM3-T777P-N4FY8-PKFF4' \
    -e 'SA_PASSWORD=Sqlsecret100' \
    -v /docker_volume/mssql:/var/opt/mssql \
    -d registry.cn-hangzhou.aliyuncs.com/newbe36524/server:2019-latest

密钥 Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4

通过Navicat 连接测试

要在 Docker 中部署 MSSQL AlwaysOn,需要完成以下步骤: 1. 首先,创建 MSSQL AlwaysOn 的 Docker 容器。可以使用以下命令: ``` docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest ``` 这个命令将下载 MSSQL 服务器的最新版本,并创建一个容器。 2. 接下来,需要创建两个以上的容器,并让它们之间可以互相访问。这可以通过创建一个 Docker 网络来完成。可以使用以下命令: ``` docker network create alwaysnet ``` 这个命令将创建一个名为 "alwaysnet" 的 Docker 网络。 3. 然后,需要在每个容器中设置 AlwaysOn 的配置。可以使用以下命令: ``` docker exec -it <container_name> /opt/mssql/bin/sqlservr-setup --setup-role AlwaysOn --force ``` 这个命令将在容器中设置 AlwaysOn 的配置。 4. 接下来,需要在每个容器中创建一个 MSSQL AlwaysOn 节点。可以使用以下命令: ``` docker exec -it <container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong!Passw0rd>' -Q 'CREATE AVAILABILITY GROUP ag1 WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY, DB_FAILOVER = ON, DTC_SUPPORT = PER_DB, CLUSTER_TYPE = NONE) FOR REPLICA ON N'<container_name>' WITH (ENDPOINT_URL = N'tcp://<container_name>:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC)' ``` 这个命令将在容器中创建一个名为 "ag1" 的 AlwaysOn 节点。 5. 最后,需要将容器加入到 AlwaysOn 节点中。可以使用以下命令: ``` docker exec -it <container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong!Passw0rd>' -Q 'ALTER AVAILABILITY GROUP ag1 ADD REPLICA ON N'<container_name>' WITH (ENDPOINT_URL = N'tcp://<container_name>:5022')' ``` 这个命令将容器加入到 "ag1" 节点中。 完成以上步骤后,就可以在 Docker 中部署 MSSQL AlwaysOn。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值