经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
Linux环境Docker使用代理推拉镜像
来源:cnblogs  作者:东北小狐狸  时间:2025/2/20 10:43:00  对本文有异议

闲扯几句

不知不觉已经2月中了,1个半月忙得没写博客,这篇其实很早就想写了(可追溯到Docker刚刚无法拉镜像的时候),由于工作和生活上的事比较多又在备考软考架构,拖了好久……

简单记录下怎么做的,以防同事和朋友问我怎么拉镜像仓库的,直接祭出本文??

适用于将Docker以Systemd服务安装的Linux环境。其他环境仅供参考。

怎么做

第1步 自备代理工具,以我本地挂的梯子 192.168.56.1:7899 举例,请自行变通。

第2步 修改docker.service

  1. vim /lib/systemd/system/docker.service

将代理环境变量写入该服务文件,写的位置在[Service]块下

  1. # proxy
  2. Environment="HTTP_PROXY=http://192.168.56.1:7899"
  3. Environment="HTTPS_PROXY=http://192.168.56.1:7899"
  4. Environment="NO_PROXY=localhost,127.0.0.1,10.*,172.*"

其中NO_PROXY可追加需要免代理的仓库地址。以下是截图:

第3步 重加载docker Unit文件并重启Docker

  1. systemctl daemon-reload
  2. systemctl restart docker

第4步 验证

  1. docker login
  2. docker pull hellxz/alpine-tomcat:openjdk8-tomcat-8.5.78

原理

Systemd的每个Unit(服务)都是在启动时加载的,不会加载到当前会话中的临时设置的环境变量,Unit文件主要存在于以下三个目录中,加载的优先级就是我这边的排序:

  • /lib/systemd/system
  • /run/systemd/system
  • /etc/systemd/system

按文中修改docker.service这个Unit文件时也一样,用的是最高优先级的。systemd重新加载Unit文件后会读取到配置在Unit文件中的环境变量,这样就会生效了。

至于代理怎么弄,这个就不多说了,得需要点魔法。

再扯几句

近期可能会写一点软考相关内容,有兴趣的可以关注下。

本文同步发布在博客园 https://www.cnblogs.com/hellxz 与 CSDN https://blog.csdn.net/u012586326,原创不易,请勿转载!

原文链接:https://www.cnblogs.com/hellxz/p/18722484

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号