【问题标题】:Ghost Blog on Ubuntu Snappy Core OSUbuntu Snappy Core OS 上的 Ghost 博客
【发布时间】:2023-03-24 03:29:01
【问题描述】:

我使用以下命令在 Snappy VM 中运行 Ghost 博客: vagrant init ubuntu/ubuntu-15.04-snappy-core-stable vagrant up && vagrant ssh

码头拉鬼 docker run -d -p 80:2368 -v /home/ubuntu/blog --name hello-world ghost

现在博客正在运行,我如何从外界查看它?

【问题讨论】:

  • 使用docker ports container_id,它会告诉你端口

标签: docker vagrant ubuntu-11.10 ghost-blog ghost


【解决方案1】:

Martin- 你所说的“外部世界”是什么意思?

看起来您使用 vagrant 在开发机器上启动了一个虚拟机,然后在该虚拟机上启动了一个 docker 容器。

您的 docker 命令将 ghost 侦听的端口 (2368) 发布到 docker 正在侦听的机器的端口 80。不过那不是你的开发机器——它是 vagrant virtualbox!这意味着在您的主机上,您无法运行 go to localhost 来查看您的博客。 (不过,您可以使用该地址从虚拟机内部 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虚拟机,再次启动 ghost, docker run -d -p 80:2368 -v /home/ubuntu/blog --name test ghost ,然后验证端口映射:输入 : docker port be2f474bb8c9 ,显示 2368/tcp -> 0.0 .0.0:80 此时,我浏览到 localhost:8080 并看到我的幽灵博客!谢谢!
  • 很高兴听到它有效。如果对您有帮助,请随时接受答案。
  • 检查。现在我已经更改了默认的 Vagrant 密码,我想上线。这是一个在 Ubuntu Snappy Core 上的 Docker 容器中运行的 Ghost 博客。虚拟机内部。在裸机操作系统上,我可以在几分钟内重建,并且硬件上有一个固件保护螺丝。我准备好面对互联网了吗?我错过了什么?我该怎么做? -谢谢
  • 强烈不推荐,但如果您确信要从您的个人计算机托管一个面向公众的网站...您需要有一个静态 IP 地址。您需要将您的 dns 名称指向该静态 IP。您需要将 ghost 端口转发到物理机上的一个端口(使用 virtualbox 设置),然后您必须从那里将该端口转发到路由器上的端口 80。
  • 顺便说一句,如果你在那个操作系统上除了你的博客什么都没有运行,那么 virtualbox 是一个不必要的抽象层,你可以在主机上运行 docker。
【解决方案2】:

我编辑了 Vagrantfile 并启用了转发端口映射: config.vm.network "forwarded_port", guest: 80, host: 8080 ,然后 vagrant reload 和 vagrant ssh,现在我登录到 Snappy VM,并启动 ghost再次, docker run -d -p 80:2368 -v /home/ubuntu/blog --name test ghost ,然后做端口映射:输入 : docker port be2f474bb8c9 ,显示 2368/tcp -> 0.0.0.0:80 At此时,我希望浏览到 localhost:8080 并查看我的 ghost 博客。 谢谢两位!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多