【发布时间】:2016-10-08 22:25:38
【问题描述】:
出于研究目的,我正在使用 vagrant 部署一个多 VM 环境,到目前为止效果很好。但现在我需要将每个 docker 容器固定到特定的 CPU 核心,但我不知道如何使用 vagrant 来做到这一点。我知道我可以使用 Vagrantfile 上的“args”子句将“--cpuset”参数传递给 docker run 命令,但我不知道如何在循环中使用它,因为我正在启动多个容器和我需要将每个容器固定到不同的 CPU 核心(例如,node1 引脚连接到核心 #0,node2 引脚连接到核心 #1,等等)。
我目前的 Vagrantfile 如下,没有 CPU Pinning 的东西:
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
# choose how many machines the cluster will contain
N_VMS = 32
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "tknerr/baseimage-ubuntu-14.04"
config.vm.network "private_network", ip: "192.168.121.2"
config.vm.provider "docker" do |v|
v.has_ssh = true
end
hosts_file = []
1.upto(N_VMS) do |i|
config.vm.define vm_name = "node#{i}" do |config|
config.vm.hostname = vm_name
end
end
script = <<-SCRIPT
apt-get -y update
apt-get -y install libcr-dev mpich2 mpich2-doc arp-scan openssh-server nano make
SCRIPT
script.sub! 'N_VMS', N_VMS.to_s
config.vm.provision "shell", inline: script
end
【问题讨论】:
标签: docker vagrant virtualization vagrantfile