Linux环境Docker使用代理推拉镜像
闲扯几句
不知不觉已经2月中了,1个半月忙得没写博客,这篇其实很早就想写了(可追溯到Docker刚刚无法拉镜像的时候),由于工作和生活上的事比较多又在备考软考架构,拖了好久……
简单记录下怎么做的,以防同事和朋友问我怎么拉镜像仓库的,直接祭出本文😆
适用于将Docker以Systemd服务安装的Linux环境。其他环境仅供参考。
怎么做
第1步 自备代理工具,以我本地挂的梯子 192.168.56.1:7899 举例,请自行变通。
第2步 修改docker.service
vim /lib/systemd/system/docker.service
将代理环境变量写入该服务文件,写的位置在[Service]
块下
# proxy Environment="HTTP_PROXY=http://192.168.56.1:7899" Environment="HTTPS_PROXY=http://192.168.56.1:7899" Environment="NO_PROXY=localhost,127.0.0.1,10.*,172.*"
其中NO_PROXY
可追加需要免代理的仓库地址。以下是截图:
第3步 重加载docker Unit文件并重启Docker
systemctl daemon-reload systemctl restart docker
第4步 验证
docker login 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
版权声明:本作品采用自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-02-18 【问题解决】关于Kubernetes 健康检测 probe errored: rpc error: code = DeadlineExceeded desc = context deadline exceeded
2021-02-18 使用Gradle生成BOM管理依赖版本
2021-02-18 CI环境:一行命令登录npm仓库
2021-02-18 使用MAT命令行工具生成堆dump分析文件
2021-02-18 Git操作:多个commit合并,并修改提交信息
2021-02-18 JVM系列之三 再谈引用
2021-02-18 JVM系列之二 分代、垃圾收集算法与垃圾收集器