我对 Docker 有点陌生,本周遇到了一个问题,容器中的进程占用了 100% 的 CPU。运行时我没有对容器设置任何资源限制,这导致整个服务器停止响应。我无法 docker stop、docker kill,最终失去了 ssh 到主机的能力。我最终重新启动了机器。
我正在寻找允许主机保留一些 CPU 容量的选项,这样就不会发生上述情况。
一种想法是--cpuset-cpus在所有容器上使用 docker run来防止它们使用 CPU 0,而 CPU 0 只供主机使用。这种方法似乎很浪费。
其他选项在我如何限制方面不太清楚。
--cpu-shares 只允许我将总使用量分成百分比,这可能会使我处于上述相同的情况。
--cpu-period&--cpu-quota对我来说不太清楚,但他们似乎不允许这样做。
有没有办法为主机保留一定比例的 CPU?
我正在尝试在 Dockerfile 构建过程中构建和挂载自定义磁盘映像:
FROM ubuntu:16.04
RUN dd if=/dev/zero of=foo.img count=500 bs=1M
RUN mkfs.ext4 foo.img
RUN mkdir -p /media/ext4disk
RUN mount -t ext4 foo.img /media/ext4disk
Run Code Online (Sandbox Code Playgroud)
运行docker build,我在最后一个命令上收到以下错误消息:mount failed: Unknown error -1.
有什么办法可以实现我想做的事吗?
我刚刚开始使用Jenkins,似乎无法让它工作.我在我的存储库的根目录中创建了一个名为'Jenkinsfile'的文本文件,但是当我尝试构建时,我收到错误"'找不到'Jenkinsfile'不符合条件".这是完整的Jenkins输出:
Started by user Joshua Fishman [Thu Jul 20 11:44:10 EDT 2017]
Starting branch indexing...
git.exe rev-parse --is-inside-work-tree # timeout=10 Setting origin to C:\Users\JoshuaF\git\edgeMagic-nextgen
git.exe config remote.origin.url C:\Users\JoshuaF\git\edgeMagic-nextgen # timeout=10 Fetching origin...
Fetching upstream changes from origin
git.exe --version #timeout=10
git.exe fetch --tags --progress origin
+refs/heads/*:refs/remotes/origin/*
git.exe ls-remote --symref C:\Users\JoshuaF\git\edgeMagic-nextgen # timeout=10
git.exe rev-parse --is-inside-work-tree # timeout=10 Setting origin to C:\Users\JoshuaF\git\edgeMagic-nextgen
git.exe config remote.origin.url C:\Users\JoshuaF\git\edgeMagic-nextgen # timeout=10
Fetching & pruning origin...
Fetching upstream changes from origin
git.exe --version # timeout=10 …Run Code Online (Sandbox Code Playgroud) 假设我正在执行git bisect,并且在运行git bisect bad命令后,我的git bisect会像这样被打断:
$ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 1 step)
error: Your local changes to the following files would be overwritten by checkout:
app/app.iml
Please commit your changes or stash them before you switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
我可以通过运行以下命令消除该文件:
git checkout -- app/app.iml
Run Code Online (Sandbox Code Playgroud)
这将使我的git的状态下,再次清洁..但我不知道如何继续以后(即让git的开张继续平分)。我相信,我已经做了git bisect bad之前和它种跳过一个台阶或做了一件我没想到。我只是想恢复我的git bisect操作..该怎么做?
我在无法访问互联网的服务器上从包安装 docker-ce 时遇到问题。
这是我的 Linux 版本 | centos-release-7-2.1511.el7.centos.2.10.x86_64
Virtualization: vmware
Operating system: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)
我试图按照此处设置的说明进行操作,但是由于盒子没有互联网,我无法进行 yum 安装。
所以我用rpm -ivh. 到目前为止,我在依赖错误后遇到依赖错误。
我尝试了这 3 个版本的 docker,它们都给出了依赖错误。
-rw-r--r--. 1 root root 19521288 Nov 8 00:52 docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 19529520 Nov 8 00:02 docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 29108 Nov 8 00:53 docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
-rw-r--r--. 1 root root 29108 Nov 8 00:03 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
-rw-r--r--. 1 root root 19509116 Nov 8 …Run Code Online (Sandbox Code Playgroud)