如何从VagrantconfigurationDockerfile
我如何通过外部的Dockerfile启动Docker的configuration? 我的stream浪文件目前看起来像这样
Vagrant.configure("2") do |config| config.vm.box = "precise64" config.vm.define :server_infrastructure do |t| end config.vm.provision "docker" do |d| d.pull_images "ubuntu" #how does the below work? #d.build "new-container-name" "local-docker-file-name" end end
非常感谢您的帮助
在v1.6.0中添加了Dockerconfiguration程序构build映像的选项 。 从Vagrant网站下载最新版本。
一旦你完成了,把一个Dockerfile放在你的Vagrantfile旁边。 将此添加到您的Vagrant文件中:
config.vm.provision "docker" do |d| d.build_image "/vagrant", args: "-t my-name/my-new-image" d.run "my-name/my-new-image" end
现在你的Docker映像将会被build立起来,并且随着vagrant up
而运行。
一种解决方法是通过shellconfiguration:
config.vm.provision "shell", inline: "docker build -t username/image /vagrant; docker run -d username/image"
为了使docker从docker文件build立图像,必须在客机中提供有问题的docker文件,并确保这是使用stream浪汉的共享文件夹function。
默认情况下,vagrant将您的项目根文件夹挂载到名称为/ vagrant下的新vm。 但在你的情况下,我build议你分享一个不同的文件夹,把你的dockerfiles在那里。 同样,通过共享不同的文件夹,您可以确保您的dockerfiles被来宾机看作是只读的。
现在假设你在项目根目录中创build了一个名为“docker”的新文件夹,并将dockerfiles放入其中。 现在,如果你将这个文件夹挂载到你的客机上,并指向docker来使用这个文件,你就全都设置好了。 如果您将这些行添加到您的stream浪文件,它将按预期工作。 config.vm.synced_folder "docker/", "/docker_builds", create: true, mount_options: ["ro"] config.vm.provision "docker" do |d| d.build_image "/docker_builds", args: "-t my-name/my-new-image" d.run "my-name/my-new-image" end
- 如何在两个不同的主机上运行两个docker集装箱之间的通信?
- Docker容器在Azure WebApps for Linux上无法正常工作,但是它在本地工作。
- 我如何使用Docker的“git-like”function?
- Docker for Windows安装程序在PresentationFramework.Aero2上失败
- 来自守护进程的错误响应:获取https://registry-1.docker.io/v2/:在192.168.65.1:53上拨号tcp:lookup registry-1.docker.io:没有这样的主机
- 在docker安装docker
- elasticsearch的默认用户和密码是什么?
- 坚持dynamicElasticsearch集群节点数据的策略
- 如何pipe理dockerized应用程序中的GPG钥匙串?