vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令
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(2) 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" doconfig.vm.provider "docker" do |d|d.image = "nginx"endendconfig.vm.define "consul" doconfig.vm.provider "docker" do |d|d.image = "consul"endend 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命令
转载于:https://www.cnblogs.com/wanghui-garcia/p/10178314.html
vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令相关推荐
- Docker 开发环境正在崩坏!
作者 | Micah Adams 责编 | 徐威龙 封图 | CSDN 下载于视觉中国 最近,我构建了一个本地开发环境,该环境使用 Docker 进行一些关键的集成测试. 在我要完成这项工作时,我意识 ...
- 阿里云服务器安装docker开发环境
前段时间在阿里云上买了个服务器,打算部署一下开发环境,想了一下就使用最近一年念念不忘的docker来部署吧!他的好处就去看看官方文档吧,这边在部署使用之后会总结到该导航文章中,这篇导航文章会随时更新, ...
- docker开发环境搭建(windows)
目录 Docker开发环境搭建 1.1mysql 1.1.1拉取镜像 1.1.2本地新建目录(windows为例) 1.1.3创建容器并添加本地映射 1.1.4连接容器数据库验证成功 2.1nacos ...
- Windows平台上iPhone基于cygwin开发环境的搭建方法
cygwin 開發平台(windows版 iPhone SDK) http://www.iphonetw.net/books/unofficialdev/cygwintoolchain Windows ...
- 利用HFS软件一分钟搭建好ESP8266基于Arduino开发环境
利用HFS一分钟搭建好ESP8266基于Arduino开发环境
- arduino编码器计数_基于Arduino开发环境的光电编码器检测仪设计方案 - 全文
0 引言 Arduino是一款基于单片机系统的电子产品开发平台,它的软硬件系统都具有高度的模块化,而且软件系统是完全开源的.其硬件系统也是高度模块化的,在核心控制板的外围有开关量输入/输出模块.各种模 ...
- 0基础用vagrant 快速构建larval开发环境 (我杨某人尽力描述了,都有从0介绍)
vagrant 快速构建larval开发环境 历史背景 今天闲来无事又从头写了一遍,这玩意能干嘛?从0开始,5分钟自动化部署larval框架项目(取决于你网速),无论是windows,mac,linu ...
- 极海APM微控制器基于IAR开发环境搭建与工程调试配置方法
极海APM微控制器基于IAR开发环境搭建与工程调试配置方法 ✨本篇主要针对基于IAR for ARM版本:V9.30.1环境搭建和工程调试配置过程进行介绍,当然也同样适用于基于ARM架构芯片的开发使用 ...
- 移植MPL库(基于STM32CubeIDE开发环境)
移植MPL库(基于STM32CubeIDE开发环境) 目前在开发利用MPU9250做9轴的应用的时候,查到的资料基本上都是基于STM32F4平台,MDK开发环境.MDK需要license,STM32前 ...
最新文章
- ADempiere TableDirect类型的reference分析
- PADS 创建封装笔记
- Intel VT学习笔记(四)—— VMCS(下)
- COGS-930-找第k小的数-HNOI2012-主席树
- mac下搭建lua环境
- JS中与正则相关的方法
- 分享30个新鲜PSD网站模板免费下载
- redis——NOSQL及redis概述
- 看,这就是你脱下谷歌眼镜的世界——多乏味!
- 魅族17系列渲染图曝光:“防爆盾”后盖引网友无限吐槽
- 数据分析学习笔记—python简单操作EXCEL
- zepto.js学习笔记01
- php解析html类库simple_html_dom(2)
- SQL Server 启动错误 系统找不到指定的文件/路径
- Windows下Cmder 安装及配置
- Matlab plot默认常用颜色RGB及十六进制颜色代码
- matlab GUI画图实例——手动输入函数画图
- 几个著名的心理学实验
- 微信小号的另一个作用
- pdf.js在h5端访问图片服务器地址携带token防盗链无法读取问题,兼容安卓ios在线预览