我使用以下命令在 Snappy VM 中运行 Ghost 博客:vagrant init ubuntu/ubuntu-15.04-snappy-core-stable vagrant up && vagrant ssh
docker pull ghost docker run -d -p 80:2368 -v /home/ubuntu/blog --name hello-world ghost
现在博客正在运行,我如何从外界查看它?
我使用以下命令在 Snappy VM 中运行 Ghost 博客:vagrant init ubuntu/ubuntu-15.04-snappy-core-stable vagrant up && vagrant ssh
docker pull ghost docker run -d -p 80:2368 -v /home/ubuntu/blog --name hello-world ghost
现在博客正在运行,我如何从外界查看它?
马丁-“外部世界”是什么意思?
看起来您使用 vagrant 在开发机器上启动了一个虚拟机,然后在该虚拟机上启动了一个 docker 容器。
您的 docker 命令将 ghost 侦听的端口 (2368) 发布到 docker 正在侦听的机器的端口 80。不过那不是你的开发机器——它是 vagrant virtualbox!这意味着在您的主机上您无法运行 go tolocalhost
来查看您的博客。(不过,您可以使用该地址从虚拟机内部对其进行 ping 操作...)
您需要做的是找到您的 vagrant virtualbox 的 IP 地址。SSH 在使用vagrant ssh
. 然后运行ifconfig
并获取您的盒子的IP地址。(你需要在这里了解一点——我的 vagrant box 实际上在 eth1 而不是 eth0 上显示了这个)
您可以通过几种方式使这更容易。您可以将 IP 地址硬编码到您的 vagrantfile 中...
ip_address = "192.168.33.17"
Vagrant.configure("2") do |config|
config.vm.network :private_network, ip: ip_address
此外,您可以使用 vagrant 插件“hostmanager”在您的机器上指定 /etc/hosts 条目,这将允许您将浏览器指向硬编码地址,并且 vagrant 将始终将其指向正确的机器。如果你已经安装了(vagrant plugin install vagrant-hostmanager
)你可以修改你的 vagrantfile
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.vm.define project_name do |node|
node.vm.hostname = "myghostblog.com"
node.vm.network :private_network, ip: ip_address
node.hostmanager.aliases = [ "www.myghostblog.com" ]
end
如果您实际上是想让您的博客在公共互联网上可见,那么您不想在没有大量知识的情况下在您的私人计算机上执行此操作(否则您无需询问: ))。
我编辑了 Vagrantfile 并启用了转发端口映射: config.vm.network "forwarded_port", guest: 80, host: 8080 ,然后是 vagrant reload 和 vagrant ssh,现在我登录到 Snappy VM,再次启动 ghost,docker运行 -d -p 80:2368 -v /home/ubuntu/blog --name test ghost ,然后做端口映射:输入 : docker port be2f474bb8c9 ,显示 2368/tcp -> 0.0.0.0:80 此时,我希望浏览到 localhost:8080 并查看我的幽灵博客。谢谢你们俩!