企业代理后的docker-machine

snz8szmq  于 2023-08-03  发布在  Docker
关注(0)|答案(6)|浏览(119)

我试图使用docker-machine在企业http代理背后的私有云(OpenStack)上创建一个示例。
是否可以告诉docker-machine使用代理,或者我需要有一个已经预先配置了http_proxy env变量的glance image?

3htmauhk

3htmauhk1#

如前所述,您可以在

$HOME\.docker\machine\machines\default\config.json

字符串
并设置HTTP_PROXY、HTTPS_PROXY和NO_PROXY变量(或删除它们):

"HostOptions": {
        "Driver": "",
        ...
        "EngineOptions": {
           ...
            "Env": [
              "HTTP_PROXY=http://10.121.8.110:8080",
              "HTTPS_PROXY=http://10.121.8.110:8080",
              "NO_PROXY=192.168.23.4"
            ],


文件编辑完成后,您只需执行以下操作:

docker-machine provision

cgvd09ve

cgvd09ve2#

在当前的docker机器版本下,我找不到更好的方法来做boot 2docker(Docker/Boot2Docker: Set HTTP/HTTPS proxies for docker on OS X)中的更改
如果在docker机器的/var/lib/boot 2docker/profile中手动设置代理,重启后会自动删除代理设置。
因此,我必须创建一个docker机器,并将--engine-env设置为代理

docker-machine create -d virtualbox \
    --engine-env HTTP_PROXY=http://example.com:8080 \
    --engine-env HTTPS_PROXY=https://example.com:8080 \
    --engine-env NO_PROXY=example2.com \
    proxybox

字符串

注意:

这是一个两年前的答案,docker发生了很多变化,所以如果你仍然不能让它在代理背后工作,请阅读@Senri的答案和其他人。
文件:create docker machine

j7dteeu8

j7dteeu83#

可以修改现有的docker-machine配置以添加代理的环境。可以编辑$HOME/.docker/machine/machines//.config.json中的config.json。
将“HTTP_PROXY= http://example.com:8080“添加到config.json中的Env。重新启动机器,一切都准备好了。

w51jfk4q

w51jfk4q4#

如果您已经创建了机器(VM),则可以像这样配置代理:

1- SSH into the docker dev host: docker-machine ssh dev
2- Add the following lines to /var/lib/boot2docker/profile (this file is read-only, use sudo)
    export HTTP_PROXY=http://<proxy>:<port>
    export HTTPS_PROXY=http://<proxy>:<port>
3- Exit the ssh session and restart the docker machine: docker-machine restart dev

字符串
Source

clj7thdc

clj7thdc5#

从Docker 18.09开始,我们可以在命令行上指定环境变量,例如代理到容器,如下所示:
第一个月
此外,我们可以通过将这些设置写入~/.docker/config.json文件来指定docker客户端,如下所示:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://127.0.0.1:3001",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

字符串
更多信息请参见文档。

ssm49v7z

ssm49v7z6#

如果公司代理背后的Docker-machine:

Linux(Ubuntu、Debian):

sudo mkdir -p /etc/systemd/system/docker.service.d
cd /etc/systemd/system/docker.service.d/
sudo touch http-proxy.conf
sudo nano http-proxy.conf

# copy and paste in the file:
[Service] 
Environment="HTTP_PROXY=http://<PROXYIP>:3128"
Environment="HTTPS_PROXY=http://<PROXYIP>:3128"
Environment="NO_PROXY=localhost,192.168.1.0/16,10.*.*.*" 

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl show --property=Environment docker

字符串

Windows:

使用PowerShell更新环境变量(具有管理员权限):

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://<PROXYIP>:3128", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://<PROXYIP>:3128", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("NO_PROXY", "192.168.*.*, 172.24.*.*, 172.25.*.*, 10.*.*.*, localhost, 127.0.0.1, 0.0.0.0/8", [EnvironmentVariableTarget]::Machine)
Restart-Service docker

相关问题