掌握CentOS7环境下的Docker使用(八)阿里云镜像仓库实战、harbor仓库搭建与实战、本地镜像容器的载入载出

文章介绍了镜像仓库的基本概念,包括公共和私有仓库,并详细阐述了如何在阿里云搭建和使用私有镜像仓库,包括创建仓库、登录、推送和拉取镜像的步骤。此外,还讲解了Harbor仓库的搭建过程,以及配置和使用方法。对于可能出现的问题,如登录错误和配置问题,也提供了相应的解决方案。
摘要由CSDN通过智能技术生成

镜像仓库简介

通俗来讲,镜像仓库就是存放着很多镜像的仓库,镜像仓库起到备份作用,方便其他机器下载使用

镜像仓库的种类可以大致分为两大类:

公共镜像仓库

官方:https://hub.docker.com/,基于各个软件开发或者有软件提供商开发的
非官方:其他组织或者公司开发的镜像,供大家免费使用

私有镜像仓库

公司自己搭建的,用于存放公司内部的镜像,自己管理,不提供给外部使用,避免了商业项目暴露出去的风险

阿里云镜像仓库的搭建与使用

阿里云镜像仓库申请地址:https://cr.console.aliyun.com/cn-shanghai/instances/repositories

创建仓库

登录,选择企业/个人实例
在这里插入图片描述

选择私有,其他可以自定义
在这里插入图片描述

选择本地仓库,创建
在这里插入图片描述

创建成功
在这里插入图片描述
点开仓库可以看到操作指南:
在这里插入图片描述
在这里插入图片描述

登录

docker login --username=豆浆两块钱 --password=xxx registry.cn-shanghai.aliyuncs.com或者docker login --username=豆浆两块钱 registry.cn-shanghai.aliyuncs.com
在这里插入图片描述

将镜像推送到Registry

将本地mysql:5.7镜像推送上去:
(1)docker tag 0018a8d83892 registry.cn-shanghai.aliyuncs.com/zytenimages/mysql:5.7
在这里插入图片描述

(2)docker push registry.cn-shanghai.aliyuncs.com/zytenimages/mysql:5.7
在这里插入图片描述
在这里插入图片描述

推送成功
在这里插入图片描述

从Registry中拉取镜像

启动另一个虚拟机,从阿里云镜像仓库中拉取镜像:docker pull registry.cn-shanghai.aliyuncs.com/zytenimages/mysql:5.7
在这里插入图片描述

拉取成功:
在这里插入图片描述

harbor仓库搭建与使用

安装之前确保前置条件是否满足,需要安装docker、docker-compose、openssl以及python2.7以上

搭建harbor仓库

安装:yum -y install openssl

Harbor离线版安装下载地址:https://github.com/goharbor/harbor/releases
或者使用我下载的安装包地址:https://pan.baidu.com/s/14NfZYKz5-Y4hnkPG0koDYA?pwd=birc 提取码:birc

上传对应安装包到/usr/lcoal目录下:
在这里插入图片描述
解压harbor-offline-installer-v2.7.1.tgz压缩包:tar -xf harbor-offline-installer-v2.7.1.tgz
进入解压后的harbor文件夹修改harbor.yml配置: 如果没有这个文件,就把harbor.yml.tmpl修改为harbor.yml

  • 修改主机名为宿主机ip(注意空格): hostname: 10.24.200.10
  • 修改密码(注意空格): harbor_admin_password: Harbor12345
    在这里插入图片描述

执行脚本: sh prepare
在这里插入图片描述

执行安装命令:sh install.sh
在这里插入图片描述

执行命令: docker-compose ps
在这里插入图片描述

访问Harbor,默认用户名admin,密码是在harbor.yml修改的密码

  • 关闭:docker-compose down
  • 启动:docker-compose up -d

因为是基于nginx搭建的仓库,可以看到端口默认是80,根据ip直接访问:
在这里插入图片描述
在这里插入图片描述

配置与使用harbor仓库

Docker配置使用自建仓库

  • 默认docker只允许访问 https仓库
  • 如果要访问http仓库需要自己配置

harbor网页上创建项目:
在这里插入图片描述
在这里插入图片描述

登录: docker login --username=admin 10.24.200.10
在这里插入图片描述
改名: docker tag mysql:5.7 10.24.200.10/zyten/mysql:5.7
推送: docker push 10.24.200.10/zyten/mysql:5.7
在这里插入图片描述
在这里插入图片描述
成功上传

下载: docker pull 10.24.200.10/zyten/mysql:5.7
在这里插入图片描述
在这里插入图片描述
下载成功

docker login后有一个登录凭证(可删除,下次需要密码):
/root/.docker/config.json (建议从安全角度出发,每次登录后进行删除)

本地镜像容器的载入与载出

一般情况下,都是把镜像上传到镜像仓库中使用时下载。但如果无法上外网,也没有私有仓库如harbor等,那只能把镜像以文件形式下载到本地,或者使用内网拷贝上传到服务器,载入这个镜像就可以使用了

两种办法:

  • 保存镜像
  • 保存容器

保存镜像

docker save c20987f18b13 -o /home/mysql.tar
-o:指定输出位置
docker save mysql:5.7 > /home/mysql.tar
在这里插入图片描述
保存镜像成功

载入镜像: docker load -i mysql.tar
在这里插入图片描述

保存容器

docker export a43f4f969670 -o /home/mysql-export.tar
在这里插入图片描述

载入容器: docker import mysql-export.tar

可能出现的问题

输入正确的密码登录不进去阿里云镜像仓库

在这里插入图片描述

解决方法: 如果你的密码中包含数字,不要使用小键盘的数字输入,用字母上面一排的数字按键输入

执行sh prepare报错

Error happened in config validation…
ERROR:root:Error: The protocol is https but attribute ssl_cert is not set

在这里插入图片描述

解决方法: 将harbor.yml中的12-18行都注释掉:
在这里插入图片描述

之后重新执行sh prepare

登录harbor仓库报错

Error response from daemon: Get “https://10.24.200.10/v2/”: dial tcp 10.24.200.10:443: connect: no route to host
在这里插入图片描述
配置允许访问http仓库:/etc/docker/daemon.json

{
    "registry-mirrors": ["https://5xok66d4.mirror.aliyuncs.com"],"insecure-registries":["http://10.24.200.10"]
}

之后重启docker服务: systemctl restart docker.service
在这里插入图片描述
登陆成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

豆浆两块钱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值