简介
这个方法适合个人临时使用,比如说有镜像需要拉取,但是又找不到仓库,就可以用这个方法先拉取镜像,再推送到仓库。前提是有xxx。
详情参见docker官网文档:docker-http-proxy
修改docker服务文件
为docker服务创建一个systemd插入目录,创建文件
mkdir -p /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/http-proxy.conf
配置示例
使用局域网代理,安装docker的机器需要能够访问运行xxx客户端的宿主机(网段相通)。
Windows上,本地端口一般是7890或者1080,具体看配置。
[Service]
Environment="HTTP_PROXY=http://host:7890"
Environment="HTTPS_PROXY=http://host:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
编辑配置文件
vim /etc/systemd/system/docker.service.d/http-proxy.conf
可以设置多个环境变量,以同时设置HTTP和 HTTPs 代理
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
不使用代理的地址
Environment="NO_PROXY=localhos,127.0.0.1,docker-registry.example.com,.corp"
刷新更改并重新启动 Docker
systemctl daemon-reload
systemctl restart docker
验证配置是否已加载并匹配您的更改
例如:
systemctl show --property=Environment docker
测试效果
下载k8s官方提供的镜像
docker pull registry.k8s.io/pause:3.9
若不使用代理,只能通过国内镜像地址下载
docker pull registry.aliyuncs.com/google_containers/pause:3.9
推送镜像到仓库
分三步,登录仓库,改变镜像名称,使用push命令推送。
若没有仓库,推荐注册一个docker hub账号,或者阿里云账号,开通免费的个人仓库。
docker hub和阿里云镜像仓库地址
https://hub.docker.com/
https://cr.console.aliyun.com/cn-hangzhou/instances
示例 推送到docker hub个人仓库
登录仓库
docker login --username=example
需要输入密码
登录成功后的提示如下
修改镜像名
docker tag registry.k8s.io/pause:3.9 example/pause:3.9
推送镜像到个人仓库
docker push example/pause:3.9
推送成功后,在 hub.docker.com 登录账号,就能看到镜像了。