Ich benutze Vagrant, um eine multiple VM-Umgebung zu Forschungszwecken zu implementieren, und es war so weit toll. Aber jetzt muss ich jeden Docker-Container an einen bestimmten CPU-Kern anheften, aber ich weiß nicht, wie man das mit Vagrant macht. Ich weiß, dass ich die "args" -Klausel auf der Vagrantfile verwenden kann, um den Parameter "--cpuset" an den docker run-Befehl zu übergeben, aber ich weiß nicht, wie ich es in einer Schleife verwenden soll, da ich mehrere Container starte und Ich muss jeden Container an einen anderen CPU-Kern (z. B. Node1 Pins zu Core # 0, Node2 Pins zu Core # 1, usw.).Vagrant: Übergabe von Docker Argumente an mehrere Container mit vagrant
Mein aktuelles Vagrantfile ist wie folgt, ohne die CPU Pinning Sache:
# 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
Ich denke, diese Methode nicht für Docker Provider funktioniert, da die Argumente i passieren müssen, um auf die „Docker run“ Befehl ist. Laut Vagrant-Dokumenten werden diese Argumente mit dem Befehl config.vm.provision übergeben, aber ich bin mir nicht sicher, wie ich sie verwenden soll. –
@LuisCarlosJersak Vielleicht können Sie auf [diese] verweisen (https://github.com/cloudhuang/vagrant-ci-env/blob/master/Vagrantfile), die ich verwendet habe, um die Kochrezepte bereitzustellen. –