Docker 上的 Jenkins - 免费交换空间 0

dkn*_*ack 12 linux jenkins docker

我注意到我在 Jenkins 上的主节点显示

free swap space: 0 B
Run Code Online (Sandbox Code Playgroud)

所以我增加了一个交换文件所描述这里

但这没有效果。我究竟做错了什么?

小智 6

运行以下命令查看您的主机是否配置了交换文件:

free|grep -i Swap
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

如果你得到“Swap: 0 0 0”,就像你在上面看到的那样,你的主机没有配置交换。

在您的主机上配置交换文件:

dd if=/dev/zero of=swapfile bs=1M count=1K
mkswap swapfile
sudo chown root:root swapfile
sudo chmod 600 swapfile
sudo swapon swapfile
Run Code Online (Sandbox Code Playgroud)

验证您的交换已配置:

free|grep -i Swap
Swap:      1048572          0    1048572
Run Code Online (Sandbox Code Playgroud)

很好,我们在主机上有一个交换。

输入以下命令运行您的 Jenkins docker:

docker run --privileged -p 8080:8080 --name jenkins -p 50000:50000 jenkins
Run Code Online (Sandbox Code Playgroud)

请注意,您必须在特权模式下运行 docker。

当您在特权模式下运行 Jenkins docker 时,主机的交换将在 docker 内可用,因此您的 Jenkins 主节点将有一个工作交换。

如果你的主机已经有一个可用的交换,你需要做的就是在特权模式下运行 Jenkins docker。