2 つの Docker コンテナーをプロビジョニングする Vagrant セットアップがあります。Docker コンテナーは問題なく起動します。Vagrant VM 内で実行するdocker ps
と、両方のコンテナーが正しいポートに接続されていることがわかります。実行するdocker logs XXX
と、Redis と Mongo の両方のデーモンが実行されていることがわかります。しかし、Vagrant ボックス自体からは、実行中のサービスに telnet で接続したりアクセスしたりすることはできません。いつも接続が拒否されます。Vagrant VM が Docker 内で実行中のサービスを認識できるようにするにはどうすればよいですか?
私Vagrantfile
のように見えます:
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.host_name = "trusty"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.box = "trusty64"
config.vm.network :private_network, ip: "192.168.10.12"
config.vm.network :forwarded_port, guest: 6379, host: 6379
config.vm.network :forwarded_port, guest: 27017, host: 27017
config.vm.provision "docker" do |d|
d.pull_images 'dockerfile/redis'
d.pull_images 'dockerfile/mongodb'
d.run 'dockerfile/redis', ports: ['6379:6379'], name: 'redis', expose: [6379]
d.run 'dockerfile/mongodb', ports: ['27017:27017'], name: 'mongodb'
end
end