掌握CentOS7环境下的Docker使用(八)阿里云镜像仓库实战、harbor仓库搭建与实战、本地镜像容器的载入载出
创始人
2025-06-01 11:03:52
0

文章目录

  • 镜像仓库简介
    • 公共镜像仓库
    • 私有镜像仓库
  • 阿里云镜像仓库的搭建与使用
    • 创建仓库
    • 登录
    • 将镜像推送到Registry
    • 从Registry中拉取镜像
  • harbor仓库搭建与使用
    • 搭建harbor仓库
    • 配置与使用harbor仓库
  • 本地镜像容器的载入与载出
    • 保存镜像
    • 保存容器
  • 可能出现的问题
    • 输入正确的密码登录不进去阿里云镜像仓库
    • 执行`sh prepare`报错
    • 登录harbor仓库报错

镜像仓库简介

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

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

公共镜像仓库

官方: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
在这里插入图片描述
登陆成功

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...