繁体   English   中英

调整SQL Server的Docker容器大小

[英]Resize Docker Container of SQL Server

我想减轻我对容器化SQL Server的内存问题。 我在Windows 10,v 1709上运行它。

为了测试,我使用以下命令创建了一个SQL Server容器:

docker run -d -p 1433:1433 --name sql1 -e SA_PASSWORD=1Secure*Password1 
-e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer:2017-latest

在这个容器化的SQL实例中,我创建了一个有效的数据库,直到它变得太大。 我现在的内存错误不足。 例如,当我在SSMS中运行查询时,我收到“资源池中没有足够的系统内存'默认'来运行此查询。” 同样,当我检查SQL Server环形缓冲区时,我看到RESOURCE_MEMPHYSICAL_LOW 当我收到这些错误时,我的笔记本电脑中只有8台可用的16 GB内存正在使用中。 所以这不是真实物理内存的问题。

在Windows 10上,Docker for Windows在Hyper-V VM中运行容器,默认为1GIG RAM。 我可以通过启动我的容器,然后使用它进入交互模式来确认这一点:

PS C:\repos\somefolder> docker exec -it sql1 powershell

在交互模式下,按照其他SO示例 ,我看到以下结果:

PS C:\> systeminfo | findstr "Memory"
Total Physical Memory:     1,023 MB
Available Physical Memory: 221 MB
Virtual Memory: Max Size:  1,023 MB
Virtual Memory: Available: 82 MB
Virtual Memory: In Use:    941 MB

此外,当我运行sql1 docker stats我可以看到我的sql1容器正在使用750MiB到970MiB范围内的PRIV WORKING SET。

好的,所以我已经清楚地确认我需要提高Hyper-V VM 1GB限制。

如何在不丢失此容器内的数据库的情况下执行此操作? 我看到一个回答“use -m”选项 ,但我认为只有在首次创建容器时才有效。

Docker版本

$ docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:12:48 2018
 OS/Arch:      windows/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.24)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:21:42 2018
  OS/Arch:      windows/amd64
  Experimental: false

SQL Server映像允许您将JSON集中的数据库作为attach_dbs环境变量附加。

我做的是这样的:

# escape=` 

FROM microsoft/mssql-server-windows-express:2017-GA 

LABEL MAINTAINER="Seba Gómez @sebagomez"

# SQL Databases
COPY data\ c:/data
ENV attach_dbs="[{'dbName':'MyDB','dbFiles':['C:\\data\\MyDB.mdf','C:\\data\\MyDB_log.ldf']}, {'dbName':'MyOtherDB','dbFiles':['C:\\data\\MyOtherDB.mdf','C:\\data\\MyOtherDB_log.ldf']}]" `
    ACCEPT_EULA=Y `
    sa_password="dbPassword!"

所有mdf和ldf文件都在我的dockerfile旁边的data文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM