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代理配置,由于本次没有采用这种方案,暂不讨论
网友评论