我正在尝试使用 Vagrant 1.6 的 Docker 提供程序,但我似乎遇到了障碍。我可以成功启动 Docker 容器和来宾操作系统,但是我无法从主机操作系统访问我在容器中启动的服务。这是我的流浪文件:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :forwarded_port, guest: 8000, host: 8000
config.vm.define "icecast" do |v|
v.vm.provider "docker" do |d|
d.image = "moul/icecast"
d.ports = ["8000:8000"]
d.env = {
# SOURCE_PASSWORD: 'password',
ADMIN_PASSWORD: 'password',
# PASSWORD: 'password',
# RELAY_PASSWORD: 'password'
}
end
end
end
我的理解是,vagrant up --provider=docker
在 OS X 上运行会启动一个运行 boot2docker 的虚拟机,然后运行我的容器。运行vagrant docker-logs
似乎确认我的容器已创建并且服务已启动,但现在我无法弄清楚如何从我的 OS X 主机访问该服务。如果我使用的是标准的 VirtualBox 提供程序,我希望该config.vm.network :forwarded_port
指令能够处理转发,但添加它似乎没有任何区别。
我需要做什么才能从我的 OS X 主机访问此服务?
更新:作为参考,这里是图像的 Dockerfile:https ://github.com/moul/docker-icecast/blob/master/Dockerfile