瀏覽代碼

DockerImpl 中添加一个 createAndRun 测试方法, 在运行容器时指定限制的资源

reghao 1 月之前
父節點
當前提交
936ee2b372
共有 1 個文件被更改,包括 14 次插入0 次删除
  1. 14 0
      common/src/main/java/cn/reghao/bnt/common/docker/DockerImpl.java

+ 14 - 0
common/src/main/java/cn/reghao/bnt/common/docker/DockerImpl.java

@@ -228,6 +228,20 @@ public class DockerImpl implements Docker {
         return dockerClient.inspectContainerCmd(containerId).exec();
     }
 
+    public void createAndRun() {
+        String image = "";
+        CreateContainerResponse container = dockerClient.createContainerCmd(image)
+                .withHostConfig(HostConfig.newHostConfig()
+                        .withMemory(1024 * 1024 * 1024L)      // 限制 1GB 内存
+                        .withMemoryReservation(512 * 1024 * 1024L) // 保证 512MB 内存
+                        .withCpuQuota(50000L)                 // 限制使用 0.5 核 (周期默认为 100000)
+                        .withBlkioWeight(500)                 // 设置磁盘 IO 权重
+                        .withNetworkMode("host")
+                        .withRestartPolicy(RestartPolicy.noRestart())
+                )
+                .exec();
+    }
+
     public void runAndRm(cn.reghao.bnt.common.docker.model.Config containerConfig) throws Exception {
         String image = containerConfig.getImage();
         CreateContainerCmd createContainerCmd = dockerClient.createContainerCmd(image).withCmd("rm");