中易网

Vagrant里安装Flask后,hello.py运行成功,为什么主机无法访问

答案:2  悬赏:50  
解决时间 2021-02-21 07:10
Vagrant里安装Flask后,hello.py运行成功,为什么主机无法访问
最佳答案
先需要自己制作一个windows的box
  首先在本地创建好工作目录,并在命令行下切换到对应目录
  1 vagrant box add base CentOS-6.3-x86_64-minimal.box
  base 表示指定默认的box,也可以为box指定名称,比如 centos63 ,使用base时,之后可以直接使用 vagrant init 进行初始化,如果自行指定名称,则初始化的时候需要指定box的名称。
  CentOS-6.3-x86_64-minimal.box 是box对应的文件名,这里可以是本地保存box的路径,也可以是可以下载box的网址,如果是网址的话,Vagrant会自动启动下载。
  设置好box之后,在当前工作目录运行

  1 vagrant init

  生成对应的Vagrantfile。通过文本编辑器打开Vagrantfile可以进行一些进一步的常用配置:
  网络配置:
  Vagrant的网络有三种模式
  1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:

  1 config.vm.network :forwarded_port, guest: 80, host: 8080

  guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
  2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:

  1 config.vm.network :private_network, ip: "192.168.1.104"

  192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
  3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:
  1 config.vm.network :public_network
  目录映射:
  既然是开发环境,那么开发工作肯定还是需要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就好了,不然就本末倒置了,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。
  默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如
  1 ln -fs /vagrant/wwwroot /var/www
  来进行目录映射,当然,从自动化配置的角度,能不进系统就不需要进系统,所以在Vagrant也可以进行目录映射的操作:
  1 config.vm.synced_folder "wwwroot/", "/var/www"
  前面的参数 “wwwroot/” 表示的是本地的路径,这里使用对于工作目录的相对路径,这里也可以使用绝对路径,比如: “d:/www/”
  后面的参数 “/var/www” 表示虚拟机中对应映射的目录。
  运行脚本:
  虽然不是必须,但是如果有需要在启动时运行一些脚本(环境的安装或者有些服务的启动需要在完成目录映射之后进行),可以编辑脚本,类似如下(摘自Vagrant Document):
  1 #!/usr/bin/env bash
  2
  3 apt-get update
  4 apt-get install -y apache2
  5 rm -rf /var/www
  6 ln -fs /vagrant /var/www
  保存在和Vagrantfile相同目录,文件名自取(如 boot.sh),然后在Vagrantfile中添加:
  1 config.vm.provision :shell, :path => "boot.sh"
  当初次使用基本的设置都完成则之后,则可以使用 vagrant up 启动虚拟机
  01 Bringing machine 'default' up with 'virtualbox' provider...
  02 [default] Setting the name of the VM...
  03 [default] Clearing any previously set forwarded ports...
  04 [default] Creating shared folders metadata...
  05 [default] Clearing any previously set network interfaces...
  06 [default] Preparing network interfaces based on configuration...
  07 [default] You are trying to forward to privileged ports (ports < = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case
  08 the port forwarding doesn't work. If any problems occur, please try a port higher than 1024.
  09 [default] Forwarding ports...
  10 [default] -- 22 => 2222 (adapter 1)
  11 [default] -- 80 => 8080 (adapter 1)
  12 [default] Booting VM...
  13 [default] Waiting for VM to boot. This can take a few minutes.
  14 [default] VM booted and ready for use!
  15 [default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM.
  16
  17 Guest Additions Version: 4.1.18
  18 VirtualBox Version: 4.2
  19 [default] Mounting shared folders...
  20 [default] -- /var/www
  21 [default] -- /vagrant
  22 [default] Running provisioner: shell...
  虚拟机启动之后则可以通过 vagrant ssh 联入虚拟机进行进一步的环境配置,或者软件安装相关的工作,在Windows系统下,并不能直接通过 vagrant ssh 连到虚拟机,需要使用 Putty,Xshell 等第三方工具进行连接
  连接的IP和端口根据网络环境配置的不同有所不同,如果是默认使用端口映射的话,一般是连接 本地的2222端口。
  登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant
  注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。
  登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题
  在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:
  vagrant up (启动虚拟机)
  vagrant halt (关闭虚拟机——对应就是关机)
  vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
  vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
  vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
  当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box,
  1 vagrant package --output NAME --vagrantfile FILE
  2
  3 可选参数:
  4
  5 --output NAME : (可选)设置通过NAME来指定输出的文件名
  6
  7 --vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中
  注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
  1 sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
  制作完成之后直接将box文件拿到其他计算机上配置即可使用。
全部回答
搜一下:Vagrant里安装Flask后,hello.py运行成功,为什么主机无法访问
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
虚拟机总是死机是什么原因
齐鲁电视台的《新包青天》什么时候播放?
上海汤包王(商城路)地址在什么地方,想过去办
外国人在沙特阿拉伯的生育政策
VIVO21在专卖店可以预定吗,还是只能在网上预
用······非常······非常····
中信国安360私有化是什么意思
汤王陵公园-滑冰场在什么地方啊,我要过去处
为什么玩的梦幻西游手游显示的k玩是什么意思
是镜子里看起来胖一点还是别人看得胖一点?
大庆的广发银行都在什么位置
特殊教育教师资格证能报其他学科的编制吗
喜欢同事,但她对我爱理不理,我该怎么追?
成语谜语:非知,莫言也
什么水果很酸用英语写。
推荐资讯
肝功能检查中总胆红素为33.5,什么原
中华北大街轴承厂宿舍怎么样?好不好?值不值
任务栏里有个索引么取掉
推荐几首好听的游戏音乐
c++ 语句*(float*)buffer[0]理解
这样的血缘关系可以结婚吗?
外地人能否在莆田考摩托车驾驶证
艾灸刮痧理疗室地址在什么地方,想过去办事
粒上皇(云浮店)地址在哪,我要去那里办事
红蜘蛛的录像文件,可以用什么独立播放器打开
推荐小学五年级看的课外书,以下那些书不适合
佳尔姿怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?