Docker Commands

Docker provider公开了一些额外的vagrant命令,这些命令对于与Docker容器交互非常有用。这有助于你在vagrant之上的工作流程,这样你就可以在底层完全访问Docker。

1.docker-exec

userdeMBP:~ user$ vagrant docker-exec -h
Usage: vagrant docker-exec [options] [name] -- <command> [args] Options: --[no-]detach Run in the background 在后台运行
-i, --[no-]interactive Keep STDIN open even if not attached 即使没有连接,也要保持STDIN输入打开
-t, --[no-]tty Allocate a pty 分配一个pty
-u, --user USER User or UID 用户或其ID
--[no-]prefix Prefix output with machine names 带有机器名称的前缀输出
-h, --help Print this help 打印帮助信息

vagrant docker-exec命令可用于对当前正在运行的Docker容器运行一次性命令。如果容器没有运行,将返回一个错误。

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

上面例子将在app容器的上下文运行 rake db:migrate命令
⚠️请注意,“name”对应的是VM的名称,而不是Docker容器的名称。

考虑以下Vagrantfile文件:

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

这个Vagrantfile将启动官方Docker的consul镜像。然后,docker-exec进入到这个实例的相关vagrant命令是:

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

具体来说,该命令实际上是:

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

因为“default”是第一个定义的VM的默认名称。在如下所示的多机vagrant设置中,“name”属性对应的是VM的名称(即web/consul),而不是容器的名称(nginx/consul):

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

下面的命令是无效的,因为nginx是镜像的名称:

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

因为VM的“name”是“web”,所以命令实际上应该是:

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

因此,建议将VM命名为与容器相同的名称。在上面的例子中,进入consul容器的命令是:

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

2.docker-logs

vagrant docker-logs命令可以用来查看正在运行的容器的日志。因为大多数Docker容器都是单进程的,所以它用于查看该进程的日志。此外,还可以对日志进行跟踪。

3.docker-run

vagrant docker-run命令可用于对Docker容器运行一次性命令。已启动的一次性Docker容器共享原始Docker容器的所有卷、链接等。

⚠️与docker-exec不同在于docker-run启动的容器也是一次性的,运行完命令后就会关闭

一个例子如下:

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

上面的例子将会在app容器的上下文中运行rake db:migrate命令

vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令的更多相关文章

  1. vagrant特性——基于docker开发环境(docker和vagrant的结合)-0-简介

    原文https://www.hashicorp.com/blog/feature-preview-docker-based-development-environments Feature Previ ...

  2. vagrant打造自己的开发环境

    vagrant打造自己的开发环境 缘由: 在网上看到斌哥,爽神都写了关于vagrant的博客,都在说很强大,所以很好奇这玩意怎么个强大,然后也就自己来一发玩玩看看. 真实缘由: 说实话是电脑配置太低, ...

  3. 使用Vagrant搭建本地python开发环境

    使用Vagrant搭建本地python开发环境 关于vagrant:Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,它使用Oracle的开源VirtualBox虚拟化系统也可以使 ...

  4. Windows使用Vagrant&VirtualBox搭建虚拟开发环境

    Vagrant 是一款用来构建虚拟开发环境的工具 , 我们可以通过 Vagrant 封装一个 Linux 的开发环境 , 分发给团队成员 ; 成员可以在自己喜欢的桌面系统 Mac/Windows/Li ...

  5. vagrant特性——基于docker开发环境(docker和vagrant的结合)-1-基本使用

    Docker vagrant提供了使用Docker作为provider(其他的provider有virtualBox.VMware\hyper-V等)的开箱即用支持.这允许你的开发环境由Docker容 ...

  6. vagrant特性——基于docker开发环境(docker和vagrant的结合)-3-boxes和配置

    Docker Boxes Docker provider不需要vagrant box.因此其config.vm.box设置是完全可选的.但是,仍然可以使用并指定一个box来提供默认值.由于一个带着bo ...

  7. windows环境 springboot+docker开发环境搭建与hello word

    1,下载安装 docker toolbox 下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker t ...

  8. 企业应用架构研究系列十九:Docker开发环境

    软件行业流行这样一个说法,由于Docker 技术的成熟和该技术被广大厂商的普遍应用,成就了微服务领域的快速成长,衍生了云原生技术和公有云的进一步推广.我个人认为Dockers 技术.微服务技术.云原生 ...

  9. Hadoop伪分布配置与基于Eclipse开发环境搭建

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

随机推荐

  1. VMware打开虚拟机没反应的解决方案(全面汇总)

    VMware打开虚拟机无反应的解决方案(全面汇总)虚拟机没反应的解决办法大概是如下几点:一.若是第一次安装后打不开虚拟机,大致是如下两种解决方案: 1.大多数时候,虚拟机打不开都是因为防火墙拦截所致 ...

  2. Codeforces550C(SummerTrainingDay01-H)

    C. Divisibility by Eight time limit per test : 2 seconds memory limit per test : 256 megabytes input ...

  3. Django中连接redis

    1. 安装 pip install django-redis 2. settings中配置 CACHES = { "default": { "BACKEND": ...

  4. 设计模式(22)--Template Method(模板方法模式)--行为型

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声 ...

  5. js-ES6学习笔记-Class(4)

    1.Object.getPrototypeOf方法可以用来从子类上获取父类.因此,可以使用这个方法判断,一个类是否继承了另一个类. 2.super这个关键字,既可以当作函数使用,也可以当作对象使用.在 ...

  6. 前端开发面试题-JavaScript(转载)

    本文由 本文的原作者markyun 收集总结. 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol ...

  7. eclipse搭建hibernate环境

    一.打开eclipse,help=>Install New Software 输入:http://download.jboss.org/jbosstools/updates/stable/kep ...

  8. 用VisualAssist在Visual Studio上设置快捷键快速编程

    一  在Visual Studio上安装VisualAssist工具: 链接:https://pan.baidu.com/s/1uaeRFTvY4p7LNoDvQFEU5A 提取码:j1ws 安装后, ...

  9. Paxos协议笔记

    对Paxos协议的介绍,可以通过Leslie Lamport的<Paxos Made Simple>展开学习和了解.Paxos算法在允许失败的分布式系统环境下,实现系统一致性.失败的情况有 ...

  10. Problem2-Project Euler

    Even Fibonacci numbers   Each new term in the Fibonacci sequence is generated by adding the previous ...