相关疑难解决方法(0)

我可以在docker-compose中使用mem_limit吗?如何?

docker-compose支持mem_limit?我该怎么测试呢?

我有一个以下docker-compose.yml

repository:
  image: myregistry/my_nginx_image
  mem_limit: 60m
  volumes:
    - /etc/localtime:/etc/localtime
  ports:
    - "80:80"
Run Code Online (Sandbox Code Playgroud)

如何证明容器实际上不超过60 mb的RAM?

我在用:

  • 码头1.3.1
  • docker-compose 1.1.0

docker fig

48
推荐指数
2
解决办法
5万
查看次数

调整 SQL Server 的 Docker 容器大小

我想缓解我的容器化 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
Run Code Online (Sandbox Code Playgroud)

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

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

PS C:\repos\somefolder> docker exec -it sql1 powershell
Run Code Online (Sandbox Code Playgroud)

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

PS C:\> systeminfo | findstr "Memory"
Total Physical Memory:     1,023 MB
Available …
Run Code Online (Sandbox Code Playgroud)

sql-server docker docker-for-windows

5
推荐指数
1
解决办法
1120
查看次数

Windows 上的“supabase start”失败

我正在运行 Windows 11,并根据文档通过 Scoop 安装了 supabase cli。我将其添加到现有存储库中,因此我已经毫无问题地运行了以下命令:

supabase login
supabase init
Run Code Online (Sandbox Code Playgroud)

当我去运行它时,supabase start它第一次完全安装了 docker 映像和所有内容,但它总是以以下错误消息结束:

> supabase start
Database is not healthy.
Error: failed to connect to `host=localhost user=postgres database=postgres`: failed to receive message (unexpected EOF)
Try rerunning the command with --debug to troubleshoot the error.
Run Code Online (Sandbox Code Playgroud)

我尝试--debug按照指示使用该标志运行,但我似乎无法从中看出任何信息,并且由于不同的问题而失败:

...                                                                                                        2023/03/11 22:46:09 Send Done
2023/03/11 22:46:09 Recv First Byte
2023/03/11 22:46:10 Sent Header: Host [docker]
2023/03/11 22:46:10 Sent Header: User-Agent [Go-http-client/1.1]
2023/03/11 22:46:10 Send Done
2023/03/11 22:46:10 Recv …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose supabase supabase-database

5
推荐指数
1
解决办法
2402
查看次数

如何减少Windows上Docker Linux容器的默认VM内存

情境

  • Windows 10专业版
  • 在Windows容器模式下运行的Docker 18.06.1-ce
  • 主机系统上4GB的可用内存
  • 使用Hyper-V虚拟机

问题

当尝试通过Docker的任务栏项目“切换到Linux容器”时,该过程在几秒钟后失败,并显示有关“没有足够的内存来启动Docker”的错误。

没有足够的内存来启动Docker

由于主机系统没有那么多的内存,我想减少全局Docker机器允许使用的最大内存量(我认为这里默认为2 GB)。因此,我想将其减少到仅1 GB。

当Docker在Windows容器模式下运行时,Docker的设置中没有“高级”部分,可以轻松减少内存分配。

没有“高级”部分可以更改内存分配

我可以使用Windows的Hyper-V管理器找到“ MobyLinuxVM”。但是,在此处调整内存设置时,每次我启动Docker并再次尝试切换到Linux容器模式时,它都会被覆盖。

Hyper-V管理器设置,在启动Docker时会再次被覆盖

是否有一种不使用用户界面为Docker定义最大内存量的方法(在这种情况下,由于Windows容器模式中缺少“高级”部分,因此无法使用-在能够切换到Linux容器之前) ?

hyper-v docker windows-10 docker-machine

3
推荐指数
1
解决办法
1130
查看次数