2018-11-03

Ubuntu及docker 环境代理设置


最近在部署一个开源项目,用到了k8s和docker等技术,在部署过程中遇到了很多问题,大都比较容易解决,在最后镜像下载的环节,耗费了很多时间,在此记录一下

由于网络环境限制(公司、GWF等),有时无法直接从官方镜像仓库下载所需镜像,此时最直接的方案就是使用代理绕过网络限制

下面使用的环节是Ubuntu 16.04 ,Docker version 18.06.1-ce

一般Ubuntu shell下面设置设置代理的方式如下:

export http_proxy=http://proxy.com:port;

export https_proxy=https://proxy.com:port;

proxy.com和port替换成自己的代理地址和端口即可

这种方式设置的代理只对该shell及相关的子进程有效果,对其他方式启动的进程(例如后台守护进程等)不起作用

所以一般的应用系统例如docker、apt等都提供了各自的http代理设置方案

1、docker设置http代理流程可以参考官方文档:

https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

官方文档特别说明http代理不能通过一般的配置文件daemon.json配置,需要单独配置

配置方式下面有详细介绍,不再记录

2、Ubuntu apt 代理设置:

vim /etc/apt/apt.conf.d/01proxy 

添加

Acquire::http {Proxy "http://your.proxy.com:port"}

https代理类似

设置之后,apt-get之类的命令都会默认走http代理了

3、docker镜像加速

经常上面两种代理设置后,docker镜像可以下载了,系统缺少的工具也可以安装了,但是直接从官方镜像下载的速度有时无法忍受,所以还需要配置镜像下载加速器

国内的daocloud提供了很好地加速器功能,可以直接使用,参考:

https://www.daocloud.io/mirror#accelerator-doc

该加速器通过在daemon.json中设置国内的镜像mirror实现加速,所以有时候执行完提供的命令后无法启动docker daemon。这时可以手动编辑

/etc/docker/daemon.json 文件,修复文件格式,然后重启docker即可。

sudo systemctl daemon-reload

sudo systemctl restart docker


Ubuntu支持全局http和socket代理配置,由于本次没有采用这种方案,暂不讨论

你可能感兴趣的:(2018-11-03)