Docker + Vagrant не может назначить IP-адрес
Я пытаюсь создать 5 док-контейнеров из образа докера с помощью Vagrant на моем Mac с публичной / частной сетью и назначить публичный частный ip для каждой машины. Цель состоит в том, чтобы войти в систему ssh на этих машинах и пропинговать другие, используя ip. Моя проблема в том, что docker всегда создает машины с 172.17 сетевой шмой.
Вот мой бродячий файл:
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'fileutils'
# Github.ibm.com public and private keys to use in the docker image for download
PRIVATE_KEY_FILE=ENV['HOME'] + "/.ssh/id_rsa_docker"
PUBLIC_KEY_FILE=ENV['HOME'] + "/.ssh/id_rsa_docker.pub"
PRIVATE_KEY=File.read(PRIVATE_KEY_FILE)
PUBLIC_KEY=File.read(PUBLIC_KEY_FILE)
IMAGE = "ngha"
HOSTS = [
{ :name => "pg1", :ip_private => "10.0.0.2", :ip_public => "192.168.0.2", :ssh_port => "2221" },
{ :name => "pg2", :ip_private => "10.0.0.3", :ip_public => "192.168.0.3", :ssh_port => "2222" },
{ :name => "pg3", :ip_private => "10.0.0.4", :ip_public => "192.168.0.4", :ssh_port => "2223" },
{ :name => "pgalog1", :ip_private => "10.0.0.5", :ip_public => "192.168.0.5", :ssh_port => "2224" },
{ :name => "pgalog2", :ip_private => "10.0.0.6", :ip_public => "192.168.0.6", :ssh_port => "2225" }
]
Vagrant.configure("2") do |config|
HOSTS.each do |host|
config.vm.define host[:name] do |machine|
machine.vm.hostname = host[:name]
machine.vm.network "private_network", ip: host[:ip_private]
machine.vm.network "public_network", ip: host[:ip_public]
machine.vm.provider "docker" do |d|
d.name = host[:name]
d.image = IMAGE
d.cmd = ["/bin/bash", "-l"]
d.remains_running = true
d.create_args = ["-it"]
d.ports = [host[:ssh_port] + ":22"]
end
end
end
end
Я попытался выполнить следующие инструкции: Доступ к бродячим виртуальным машинам из контейнера Docker.
Но команда "brctl show" не существует на Mac. Я не знаю, что положить в поле моста в файле vagrant.
Кто-нибудь знает, как решить проблему? Спасибо