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.

Кто-нибудь знает, как решить проблему? Спасибо

0 ответов

Другие вопросы по тегам