Bri*_*nga 9 out-of-memory docker docker-compose docker-for-windows
在 Windows 版 Docker 上,我有一个简单的 SQL Server 容器,通过一个简单的文件microsoft/mssql-server-windows-developer启动该容器。docker-compose updocker-compose.yaml
有没有办法给这个容器分配超过1GB的内存?我可以在直接运行映像或使用 构建映像时执行此操作-m 4GB,但在使用 Docker Compose 时我不知道如何执行此操作。这个容器需要超过 1GB 的 RAM 才能正常运行,到目前为止我的所有研究都没有发现任何有用的信息。
我研究了资源配置选项,但这仅适用于在 Docker Swarm 下运行时,我不需要。
在 docker compose 版本 2.* 中,您可以使用mem_limit选项,如下所示
\n\nversion: \'2.4\'\nservices:\n my-svc:\n image: microsoft/mssql-server-windows-developer\n mem_limit: 4G\nRun Code Online (Sandbox Code Playgroud)\n\n在 docker compose 版本 3 中,它被资源取代在 docker compose 版本 3 中,它被需要 docker swarm 的
\n\nversion: \'3\'\nservices:\n my-svc:\n image: microsoft/mssql-server-windows-developer\n deploy:\n resources:\n limits:\n memory: 4G\nRun Code Online (Sandbox Code Playgroud)\n\n有一个兼容性标志,可用于在运行时将部署部分转换为等效的版本 2 参数docker-compose --compatibility up。但是,不建议在生产部署中这样做
来自文档
\n\n\n\ndocker-compose 1.20.0 引入了一个新的 --compatibility 标志,旨在帮助开发人员更轻松地过渡到版本 3。启用后,\n docker-compose 会读取每个服务\xe2\x80\x99s 定义的部署部分\n 并尝试将其转换为等效的版本 2 参数。\n 目前,将转换以下部署密钥:
\n\n\n
\n\n- 资源
\n- 限制和内存预留
\n- 复制品
\n- 重启策略
\ncondition 和 max_attempts 所有其他键都将被忽略,并产生\n 警告(如果存在)。您可以通过在 config 命令中使用 --compatibility 标志来查看将用于部署的配置。
\n\n我们建议不要在生产中使用 --compatibility 模式。由于生成的配置只是使用非 Swarm 模式属性的近似值,因此可能会产生意外结果。
\n
正在寻找在非集群模式容器上设置资源的选项?
此处描述的选项特定于部署密钥和集群模式。如果要在非 Swarm 部署上设置资源限制,请使用Compose 文件格式版本 2 CPU、内存和其他资源选项。如果您还有其他问题,请参阅 GitHub 问题docker/compose/4513上的讨论。
您可以在版本 2 而不是版本 3 上使用 docker-compose 文件。您可以使用mem_limit(在版本 2 上可用)设置内存限制。所以你可以使用这样的 docker-compose 文件:
version: "2.4"
services:
sql-server:
image: microsoft/mssql-server-windows-developer
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=t3st&Pa55word
mem_limit: 4GB
Run Code Online (Sandbox Code Playgroud)
您可以使用 检查内存限制docker stats。
| 归档时间: |
|
| 查看次数: |
18228 次 |
| 最近记录: |