Vagrant命令(四)

Vagrant命令(四)

SNAPSHOT

命令:vagrant snapshot

这个命令是用来管理客户机快照的。快照主要是记录客户机某个时间点的状态。你可以快速的进入这个快照的状态。有了快照,就可以快速的返回到前一个状态。当然并不是所有的虚拟机都支持快照,如果虚拟机不支持快照的话,会报错。这个命令还有更多的子命令

  • push
  • pop
  • save
  • restore
  • list
  • delete

SNAPSHOT PUSH

命令: vagrant snapshot push

这个命令创建一个快照,把快照放进快照的堆栈里面。这个命令是vagrant snapshot save的简单版本,不需要指定保存的名字。当用相反的命令vagrant snapshot pop,它将会恢复保存这个压缩状态。

 

SNAPSHOT POP

命令:vagrant snapshot pop

这个命令是vagrant snapshot push的反命令,它将恢复压缩状态。

选项:

--[no-]provision-强制虚拟机提供程序运行(或者禁止运行)

--no-delete-当恢复状态的时候,禁止删除快照

SNAPSHOT SAVE

命令:vagrant snapshot save NAME

这个命令是保存一个新的快照,如果用了这个命令,pop和push命令最好别用了。

SNAPSHOT RESTORE

命令:vagrant snapshot restore NAME

这个命令恢复指定名字的快照。

--[no-]provision-强制虚拟机运行

SNAPSHOT LIST

命令:vagrant snapshot list

这个命令是列出所有的快照

SNAPSHOT DELETE

命令:vagrant snapshot delete NAME

这个命令删除指定名字的快照。一些虚拟机必须得先把子快照删掉。Vagrant不会关心是否删除子快照。如果虚拟机这么要求的,必须按照保存顺序,相反的顺序删除。

SSH

命令:vagrant ssh[name|id][--extra_ssh-args]

这个命令会通过ssh的方式连接虚拟机。

如果--后面跟着命令,那这些命令将会直接通过ssh执行。这就让你可以传递任何指定的命令比如说反转隧道的命令,传递到ssh.

选项:

-c COMMAND 或者--command COMMAND-这个运行一个单一的SSH命令。打印标准输出、标准错误或者退出。

背景知识:

如果你指定运行的命令在后台运行,它将会立刻结束。这主要因为Vagrant运行这个命令,主要是在shell上下文环境中运行。如果shell退出,子进程也会退出。为了避免出现这个问题,需要把进程同shell分离出来。一个可以分离的命令是nohup

SSH CONFIG

命令:vagrant ssh-config [name|id]

这个命令主要是从SSH显示出SSH配置文件,到正在运行的机器中

选项:

--host NAME -显示配置信息的主机名字

STATUS

命令:vagrant status[name|id]

这个命令主要是显示vagrant管理的虚拟机的状态。这个命令很简单,尤其是当熟练使用vagrant的时候。当你忘记vagrant机器是在运行还是挂起还是没有创建的时候。这个命令会告诉你潜在客户机状态。

SUSPEND

命令:vagrant suspend[name|id]

这个命令是挂起vagrant管理的机器,而不是关机或者销毁。

挂起状态主要是保存某个时间点的机器状态,当你重启的时候。他就会从保存的时间点快速的运行。当然这样也是有代价的,需要额外的存储空间来保存虚拟机的RAM状态。但是,当挂起的时候并不消耗主机的内存和CPU。

UP

命令:vagrant up[name|id]

这个命令主要是通过创建的vagrantfile创建客户机

这个是vagrant中一个非常重要的命令。任何用vagrant的人必须经常使用这个命令。

选项:

--[no-]destroy-on-error-删除最新创建的虚拟机,如果报错,或者不可遇见的错误发生。这个命令只有当第一次使用vagrant up的时候发生。默认设置也是这样设置的。

--[no-]install-provider-如果需要的虚拟机没有安装,vagrant会自动的安装。默认情况下这个也是这么设置的。

--[no-]parallel-提供多台机器并行运行,如果虚拟机支持的话。

--provider x-根据提供的虚拟机运行,默认的是'virtualbox'

--provision--强制虚拟机程序运行

--provision-with x,y,z-这个将会运行给定的提供者。例如你有:shell和:chef_solo,运行vagrant provision --provision-with shell仅仅运行shell

version

命令:vagrant version

这个命令主要是返回已经安装最新的可用的vagrant版本。为了获得最新的版本,这个命令必须可以联网。如果你想看看最新的安装的版本只需要用 vagrant --version

其他命令:

除了之前讲过的命令。还有一些不常见的命令。我们称呼他们为“非基本子命令”。可以通过运行vagrant list-commands来显示所有的不常见的子命令。不常见的子命令有:

  • docker-exec
  • docker-logs
  • docker-run
  • rsync
  • rsync-auto

DOCKER命令

Docker提供了一些vagrant额外的命令来交互。

docker-exec

vagrant docker-exec可以被用来一次性运行当前的docker容器。如果docker容器没有运行,将会返回错误。

 

$ vagrant docker-exec app -- rake db:migrate

这个命令将会运行rake db:migrate 在一个app上下文的容器里面。注意这里的Name和虚拟机的name一致,而不是Docker容器的名字。

 

Vagrant.configure(2) do |config|
  config.vm.provider "docker" do |d|
    d.image = "consul"
  end
end

这个vagrantfile将会运行一个正式的Docker管理的镜像。然而与vagrant命令相关联的docker-exec在这个示例中是

 

$ vagrant docker-exec -it -- /bin/sh

实际上这个命令是

 

$ vagrant docker-exec default -it -- /bin/sh

因为这里的'default'是VM的第一个定义的默认名字。在下面的多机器的Vagrant安装中,‘name’是和VM的名字一致而不是和容器的名字

 

Vagrant.configure do |config|
  config.vm.define "web" do
    config.vm.provider "docker" do |d|
      d.image = "nginx"
    end
  end

  config.vm.define "consul" do
    config.vm.provider "docker" do |d|
      d.image = "consul"
    end
  end
end

下面的命令是无效的

 

# Not valid
$ vagrant docker-exec -it nginx -- /bin/sh

主要是因为VM的名字是'web',所以正确的名字是

 

$ vagrant docker-exec -it web -- /bin/sh

正式基于这个原因,建议VM的名字和容器的名字一致。在上面的例子中,进入相应的容器的命令是含糊不清的。

 

$ vagrant docker-exec -it consul -- /bin/sh

docker-logs

vagrant docker-logs可以也被用来查看正在运行容器的日志。主要是因为大多数的docker容器是单线程的,这个主要是用来查看那个进程的日志。同时这个日志可以只显示最后的部分。

docker-run

vagrant docker-run可以被用来运行一次Docker容器。这个一次性的Docker容器将会开始共享所有卷、连接等等。下面的例子

 

$ vagrant docker-run app -- rake db:migrate

这个命令将会运行rake db:migrate 在app容器的上下文环境中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值