Docker镜像推送到远程服务器

前言

关于docker的小知识点 可看我之前的文章:
Docker零基础从入门到精通(全)

写这个博客的原因是因为
gitlab拉取docker的镜像的时候,由于匿名或者登录账户下,拉取的次数有所限制
而且拉取的时间比较久
以至于在pipeline的时候出现了这个问题

问题如下所示:
已经将镜像仓库网址替换成了xxx(保护隐私)
(以下博客主要讲解怎么解决,关键性的问题已经打码)

Running with gitlab-runner 14.10.1 (xxx)
  on xxx
Preparing the "docker" executor
Using Docker executor with image xxx ...
Pulling docker image xxx ...
WARNING: Failed to pull image with policy "always": Error response from daemon: Get https://xxxx: unauthorized: authentication required (manager.go:203:0s)
ERROR: Job failed: failed to pull image "xxx" with specified policies [always]: Error response from daemon: Get https://xxx: unauthorized: authentication required (manager.go:203:0s)

为此需要将镜像发布到内网或者其他云服务器,在对应拉取即可

1. 发布到DockerHub

如何推送远程服务器,需要登陆服务器先获取项目的权限

  1. 注册一个自已的账号,通过官网
  2. 在服务器上提交自已的镜像
    docker login --help

提交镜像要先登陆成功,通过这个参数
docker login -u 用户名 官网地址

登陆成功之后就可以提交镜像
通过docker push 作者名/镜像名:版本号,而且提交的时候几乎都是按层次提交
提交的时候最好是使用ti zi ,上传的比较快

拉取下载的时候同理,通过docker pull 作者名/镜像名:版本号

补充一个细节:
给一个容器加上一个tag版本号:
docker tag 容器id 容器仓库名:版本号

2. 发布到阿里云

  1. 登陆阿里云官网
  2. 找到容器镜像服务
  3. 创建命名空间,创建容器镜像,按照具体步骤一步一步执行

3. 补充gitlab上拉取镜像

已经push上去了,在github或者gitlab怎么通过脚本进行拉取

该需求是我在公司遇到的,push镜像到服务器之后,怎么通过gitlab进行拉取

通过书写gitlab的cicd 的yml文件

比上面多了一个步骤:
通过服务器执行 cat ~/.docker/config.json

查看其代码模块:

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "xxxx"
                },
                "baidu.com": {
                        "auth": "xxxx"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.06.3-ce (linux)"
        }
}

由于在服务器上登录了,所以只需要获取其auth的参数即可

在gitlab的yml脚本文件上配置如下:

variables:
  DOCKER_AUTH_CONFIG: '{"auths": {"官网地址": {"auth": "xx"}}}'

在对应输入拉取网址的镜像即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值