Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 为什么我不能从Vagrant VM中解析docker.io和代理后面的其他主机_Proxy_Vagrant_Virtualbox_Docker_Boot2docker - Fatal编程技术网

Proxy 为什么我不能从Vagrant VM中解析docker.io和代理后面的其他主机

Proxy 为什么我不能从Vagrant VM中解析docker.io和代理后面的其他主机,proxy,vagrant,virtualbox,docker,boot2docker,Proxy,Vagrant,Virtualbox,Docker,Boot2docker,我使用2个docker容器运行Vagrant,当不使用公司代理时效果良好,但当我使用公司代理并尝试运行Vagrant时,我不断得到: https://index.docker.io/v1/repositories/dockerfile/ubuntu/images: dial tcp: lookup index.docker.io: no such host 我在vagrant里面用 VAGRANT_HTTP_PROXY="http://proxy.example.com:8080/" vag

我使用2个docker容器运行Vagrant,当不使用公司代理时效果良好,但当我使用公司代理并尝试运行Vagrant时,我不断得到:

https://index.docker.io/v1/repositories/dockerfile/ubuntu/images: 
dial tcp: lookup index.docker.io: no such host
我在vagrant里面用

VAGRANT_HTTP_PROXY="http://proxy.example.com:8080/" vagrant up
我也无法在公司代理上使用vagrant中的nslookup解析主机

我已尝试按照建议在Vagrant文件中包含以下内容:

config.vm.provider:virtualbox do | vb| vb.customize[modifyvm,:id,-natdnsproxy1,on] vb.customize[modifyvm,:id,-natdnshostresolver1,on] 终止 我还尝试使用桥接连接,按照建议重新启动docker服务器,并在mac上交换我的DNS,我在其他地方看到了建议,但找不到链接

我非常感谢您的帮助/指导,如果与此相关,我将在运行OSX 10.9和virtual box的macbook上运行vargrant 1.6.5,这是我的vagrant文件:


$start=不需要在Internet上解析名称,因为代理服务器解析名称。但是,如果没有安装docker,vagrant proxyconf不会配置代理。有两种方法可以解决此问题

在docker设置之前配置代理 无法更改配置文件。例如/etc/default/docker,/etc/sysconfig/docker 在使用shell provisioner进行配置之前,您需要配置代理,如下所示

  # If you use RHEL write to /etc/sysconfig/docker
  config_proxy = 'echo export http_proxy=$http_proxy >> /etc/default/docker'
  config.vm.provision('shell',
                      inline: config_proxy)
  config.vm.provision 'docker'
我简化了你的档案

使用docker安装的虚拟机盒 如果未安装docker,Vagrant proxyconf不会配置代理。如果使用docker安装的VM box,请配置代理

注: Vagrant proxyconf 1.4.0始终重新启动docker,因此有时docker容器可能会损坏。 2014年12月22日发布的Vagrant proxyconf 1.4.2仅在代理配置更改时才重新启动docker。 您可以在ATLAS上找到docker安装的虚拟机盒。我找到了jess/nginx docker

我简化了你的档案


没有必要在Internet上解析名称,因为代理服务器解析名称。但是,如果没有安装docker,vagrant proxyconf不会配置代理。有两种方法可以解决此问题

在docker设置之前配置代理 无法更改配置文件。例如/etc/default/docker,/etc/sysconfig/docker 在使用shell provisioner进行配置之前,您需要配置代理,如下所示

  # If you use RHEL write to /etc/sysconfig/docker
  config_proxy = 'echo export http_proxy=$http_proxy >> /etc/default/docker'
  config.vm.provision('shell',
                      inline: config_proxy)
  config.vm.provision 'docker'
我简化了你的档案

使用docker安装的虚拟机盒 如果未安装docker,Vagrant proxyconf不会配置代理。如果使用docker安装的VM box,请配置代理

注: Vagrant proxyconf 1.4.0始终重新启动docker,因此有时docker容器可能会损坏。 2014年12月22日发布的Vagrant proxyconf 1.4.2仅在代理配置更改时才重新启动docker。 您可以在ATLAS上找到docker安装的虚拟机盒。我找到了jess/nginx docker

我简化了你的档案


@chris snow我不明白您实际编辑的代码块中添加了什么。@chris snow我不明白您实际编辑的代码块中添加了什么。
VAGRANTFILE_API_VERSION = '2'

Vagrant.configure('2') do |config|

  if Vagrant.has_plugin?('vagrant-proxyconf')
    config.proxy.http     = 'http://proxy:8080/'
    config.proxy.https    = 'http://proxy:8080/'
    config.proxy.no_proxy = 'localhost,127.0.0.1'
  end

  config.vm.synced_folder '.', '/var/local/app'

  # Ubuntu
  config.vm.box = 'jess/ubuntu-precise-nginx-docker'

  config.vm.provision 'docker' do |d|
    d.build_image '/var/local/app/webApp',      args: '-t sapvagrant/web_app'
    d.build_image '/var/local/app/nodeService', args: '-t sapvagrant/node'
    d.run 'sapvagrant/node',    args: '--name node'
    d.run 'sapvagrant/web_app', args: '-P -p 49166:80 --name web --link node:db'
  end
end