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. Moon Game (凸四边形个数,数学题)

    Problem 2148 Moon Game Accept: 24    Submit: 61 Time Limit: 1000 mSec    Memory Limit : 32768 KB Pro ...

  2. C#生成二维码,裁切边框

    使用google zxing生成的二维码带有白色边框,显示在报告(使用Crystal Report 水晶报表)上时,由于空间有限造成二维码过小难以扫描识别. 通过将白色边框裁切掉,可以在有限的空间内最 ...

  3. SpringBoot阿里巴巴Fastjson的一些常用配置

    SpringBoot阿里巴巴Fastjson的一些常用配置 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { F ...

  4. Spring、Springmvc整合web的web.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  5. 关于UltraWinGrid选中行只读设置

    刚开始设置了 一些属性不起作用,后来检查下属性发现一旦对DataSource赋值 则属性会被重置 如果是通过绑定DataSet的方式 则需要再后面设置 ].Override.CellClickActi ...

  6. Python数据模型

    引言 像大多数人一样,我在对一直传统的面向过程语言C一知半解之后,走进了面向对象的世界,尽管对OOP一无所知,还好Python还保留有函数式编程,这使得我才不那么抵触,直到现在,习惯了面向对象之后,也 ...

  7. 自定义data-*

    HTML5的自定义属性data-*详细介绍和JS操作实例 < div id="user" data-id="123456" data-name=" ...

  8. 用AndroidStudio创建so

    Android开发中经常遇到so,下面介绍用Android Studio创建so.Android Studio版本3.0.1. 一 编写代码 1 创建java类myJNI.java,并且声明一个nat ...

  9. Android逆向 编写一个Android程序

    本节使用的Android Studio版本是3.0.1 首先,我们先编写一个apk,后面用这个apk来进行逆向.用Android Studio创建一个新的Android项目,命名为Jhm,一路Next ...

  10. 常用的第三方模块 Pillow url

    Pillow PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 由于PIL仅支持到Python 2.7 ...