在使用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