在使用Vagrant时访问Dockerfunction

我一直在使用Vagrant一​​段时间,现在正在探索Docker。 我一直很喜欢stream浪汉的简单。 现在,我正在尝试使用Vagrant中的Docker提供程序。 我正在使用以下Vagrantfile:

Vagrant.configure("2") do |config| config.vm.provider "docker" do |d| d.image = "fgrehm/vagrant-ubuntu:precise" end end 

我的理解是,我可以跑上vagrant up 。 然后,我可以使用vagrant docker-run -- <command>运行Docker容器。

到现在为止还挺好。 什么使得Docker如此棒的事实是,你可以搞砸和提交更改。 我不明白的是如何将这个在我的工作stream程中使用Docker提供商的stream浪者。 比如我如何运行docker commit来提交容器的状态? 我希望有一些vagrant docker-commit ,但是这不存在?


编辑 :事后看来,我认为这不是你应该使用Vagrant / Docker的方式。 虽然声称这两种工具都是相辅相成的 ,但我的观点是,他们还没有在一起玩得很好。 现在,我们使用Dockerfiles来构build我们的图像。 另外,我们制作了一套bash脚本来启动一个容器。

尝试指定“has_ssh”为true,并要求Vagrant使用端口22而不是2222:

 ENV["VAGRANT_DEFAULT_PROVIDER"] = "docker" Vagrant.configure("2") do |config| config.vm.provider "docker" do |d, o| d.image = "fgrehm/vagrant-ubuntu:precise" d.has_ssh = true o.ssh.port = 22 end end 

那就用vagrant up; vagrant ssh vagrant up; vagrant ssh访问它。

另一种select是,如果在host2主机上有与Docker服务器相同的客户端版本的docker,则在boot2docker VM内启动。 在这种情况下,你可以设置

 export DOCKER_HOST=tcp://:4243 (or 2375 depending on docker version) 

然后访问所有运行本地客户端的dockerfunction:

 docker ps -a