[英]Use a single VM with Vagrant to host Docker Containers across multiple projects
[英]How to access Docker containers from within a Vagrant VM
我有一个Vagrant设置,提供了两个Docker容器。 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
在Docker配置器的Vagrant文档中,没有提及ports
。 我建议您改用args
。
更换
d.run 'dockerfile/redis', ports: ['6379:6379'], name: 'redis', expose: [6379]
d.run 'dockerfile/mongodb', ports: ['27017:27017'], name: 'mongodb'
同
d.run 'dockerfile/redis', args: "-p 6379:6379", name: 'redis'
d.run 'dockerfile/mongodb', args: "-p 27017:27017", name: 'mongodb'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.