当前位置: 首页 > article >正文

Docker学习笔记(十)搭建Docker私有仓库

一、环境配置

1、宿主机系统:macOS Sequoia(版本15.2)

2、虚拟机VMware Fusion版本:专业版 13.6.2 (24409261)

3、虚拟机系统:AlmaLinux-9-latest-x86_64-boot.iso

二、安装Harbor开源企业级Docker镜像

Harbor 是一个开源的企业级 Docker 镜像 仓库,提供了许多功能,包扩用户管理、访问控制、镜像复制和安全扫描;Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。

1、安装Harbor

1.1环境准备

1.1.1查看虚拟机IP命令:
ifconfig

1.1.2查看防火墙状态

防火墙操作比较好的文章:https://zhuanlan.zhihu.com/p/612481340

查看防火墙状态:
systemctl status firewalld
关闭防火墙:
systemctl stop firewalld
开启防火墙:
systemctl start firewalld
重新加载防火墙规则:
firewall-cmd --reload
1.1.3关闭内核安全机制,(这个在网上查看资料的时候有大神关闭了,但是我没关闭也成功了,暂且记录一下)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0

1.2部署Docker和Docker Compose

1.2.1部署Docker
1.2.1.1卸载系统之前的Docker镜像,因我是新装的虚拟机什么都没安装,我直接执行,方法记录一下
# 安装前先更新yum,不然有可能出现本机无法连接虚拟机的mysql、redis等
sudo yum update
# 卸载系统之前的docker,以及 docker-cli
sudo yum remove docker-ce docker-ce-cli containerd.io
# 卸载系统之前的docker 
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

 

1.2.1.2安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

1.2.1.3设置 docker repo 的 yum 位置
# 配置镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.2.1.4安装 docker,以及 docker-cli
sudo yum install -y docker-ce docker-ce-cli containerd.io

1.2.1.5配置 docker 加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.registry.cyou",
					"https://docker-cf.registry.cyou",
					"https://dockercf.jsdelivr.fyi",
					"https://docker.jsdelivr.fyi",
					"https://dockertest.jsdelivr.fyi",
					"https://mirror.aliyuncs.com",
					"https://dockerproxy.com",
					"https://mirror.baidubce.com",
					"https://docker.m.daocloud.io",
					"https://docker.nju.edu.cn",
					"https://docker.mirrors.sjtug.sjtu.edu.cn",
					"https://docker.mirrors.ustc.edu.cn",
					"https://mirror.iscas.ac.cn",
					"https://docker.rainbond.cc"
					]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2.1.6启动 docker & 设置 docker 开机自启
systemctl enable docker

1.2.1.7查看docker版本
docker -v

1.2.2部署Docker-Compose服务

Harbor是需要Docker-Compose服务做支撑的

1.2.2.1下载最新Docker-Compose
# 下载阿里云docker-compose二进制文件
# curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
# 下载github最新docker-compose版本
sudo curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
chmod +x /usr/local/bin/docker-compose

这里要注意:

第一次安装我也是安装的阿里的最新镜像,1.21.2,安装完毕,启动一直报错

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

这个问题就是因为版本问题导致的,把阿里的镜像换成github的再次下载docker-compose问题解决,卡了我一天

解决方案一: 

按照这种解决错误会变为,没有根本解决

1.2.2.2查看Docker-Compose版本
docker-compose -v

 1.3部署Harbor服务

官网地址:Releases · goharbor/harbor · GitHub

1.3.1下载并解压Harbor安装包,这里要文明上网!!!!,另外下载解压的时候要注意存放的文件位置
sudo wget https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz

sudo tar xvf harbor-offline-installer-v2.12.2.tgz

1.3.2配置Harbor参数文件

解压后,在目录下会生成一个harbor.yml.tmpl文件(复制harbor.yml.tmpl并重命名为harbor.yml)。修改harbor.yml

# 拷贝一份Harbor的配置文件
[root@localhost ~]# cp /usr/local/harbor/harbor.yml.tmpl /usr/local/harbor/harbor.yml
[root@localhost ~]# vim /usr/local/harbor/harbor.yml
# 修改hostname,修改为自己的IP地址
hostname: 192.168.119.133
# 将https段的内容全部注释,这里不使用https访问
################################################################

#https:
  # https port for harbor, default is 443
 #port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path
 ################################################################
 
 
# 对配置文件进行语法检查,将会自动拉取必要的镜像
[root@localhost ~]# /usr/local/harbor/prepare
1.3.3启动Harbor

在解压的目录下运行./install.sh脚本开始安装。安装过程中会检查环境、配置文件等,并下载所需的Docker镜像。

# 需要一点时间,等待安装回显结束即可
[root@localhost ~]# sh /usr/local/harbor/install.sh
 1.3.4查看Harbor启动镜像
docker-compose ps

1.3.5访问私有仓库

访问地址:虚拟机的地址,不用端口

用户名:zaiharbor.yml文件里有,默认:admin

密码:文件里有,默认:Harbor12345

 三、使用docker上传镜像到Harbor

3.1服务器本机上操作

3.1.1本机登录

# 使用 docker 进行登录和推送,在推送镜像之前要做一次登录
docker login -u admin -p Harbor12345 http://127.0.0.1

3.1.2本机拉取镜像

这里先描述一个问题,就是使用docker search mysql一直不通过各种配置,各种搜索问题依旧没有解决,暂时记录一下处理过程,哪位大神有思路一起交流

解决步骤:

1、修改ifcfg-enp0s3,我用的almalinux这个文件夹下没有这个文件,我手动配置,但是问题没解决

 cd /etc/sysconfig/network-scripts/
  vim ifcfg-enp0s3 

加入DNS1=8.8.8.8

修改resolv.conf 

vim /etc/resolv.conf

加入
nameserver 8.8.8.8

重启网络:问题没解决呀

# 使用这个命令会报错
systemctl restart network

# 使用
systemctl restart NetworkManager

systemctl status NetworkManager

2、修改DNS

# 文件地址
sudo vim /etc/resolv.conf

# 文件内容
; generated by /usr/sbin/dhclient-script
nameserver 114.114.114.114.
nameserver 8.8.8.8
options edns0 trust-ad
search localdomain

修改docker的daemon.json文件

# 文件位置
sudo vim /etc/docker/daemon.json
 

# 文件内容
{
     "max-concurrent-downloads": 10,
     "max-concurrent-uploads": 5,
     "default-shm-size": "1G",
     "debug": true,
     "experimental": false,
     "registry-mirrors": ["https://docker.registry.cyou",
					"https://docker-cf.registry.cyou",
					"https://dockercf.jsdelivr.fyi",
					"https://docker.jsdelivr.fyi",
					"https://dockertest.jsdelivr.fyi",
					"https://mirror.aliyuncs.com",
					"https://dockerproxy.com",
					"https://mirror.baidubce.com",
					"https://docker.m.daocloud.io",
					"https://docker.nju.edu.cn",
					"https://docker.mirrors.sjtug.sjtu.edu.cn",
					"https://docker.mirrors.ustc.edu.cn",
					"https://mirror.iscas.ac.cn",
					"https://docker.rainbond.cc"
					]
}

# 修改完毕要重启
sudo systemctl daemon-reload
sudo systemctl restart docker

问题依旧,但是可以拉取镜像,哪位大神有经历可以帮忙看一下。先走下边的流程

3.1.3拉取镜像

[root@localhost ~]# docker pull mysql:5.6

3.1.4将镜像打标签

# push上传镜像必须要以,以下格式进行打标签
# 格式:私有仓库IP地址/项目名称/镜像标签
[root@localhost ~]# docker tag mysql:5.6 127.0.0.1/wj_demo/mysql:v1

3.1.5上传镜像到Harbor

docker push 127.0.0.1/wj_demo/mysql:v1

 3.2宿主机/其他客户端上传镜像到docker仓库服务器

在宿主机上配置镜像仓库地址

#在宿主机上查看docker安装位置
docker info

#在信息列表中找到.docker文件夹路径,进入.docker文件夹修改daemon.json文件 

添加insecure-registries信息,IP为虚拟机地址,80为harbor.yml文件中配置的端口

准备上传

1、登陆

docker login -u 用户名 -p 密码 IP:端口

2、打包

3、推送

4、宿主机拉取镜像

docker pull 172.16.156.128:80/wj_demo/mysql5.7:v1


http://www.kler.cn/a/595720.html

相关文章:

  • 密码协议与网络安全——引言
  • 零基础搭建智能法律知识库!腾讯云HAI实战教程
  • 基于Arm GNU Toolchain编译生成的.elf转hex/bin文件格式方法
  • 数学建模 绘图 图表 可视化(3)
  • 星越L_超速报警功能使用讲解
  • Java Web开发技术解析:从基础到实践的全栈指南
  • 手撸一个 deepseek 聊天历史对话、多轮对话(ollama + deepseek + langchain + flask)
  • 基于图像处理和机器学习实现的压差表数值读取
  • HarmonyOS鸿蒙开发 BuilderParam在父组件的Builder的点击事件报错:Error message:is not callable
  • 【时时三省】(C语言基础)习题2 scanf函数
  • Pytorch使用手册—自定义 C++ 和 CUDA 运算符(专题五十一)
  • 用AI优化云平台上的企业客服通话满意度和工单解决效率(上)
  • docker compose启动ollama+openweb ui,本地大模型十分钟搭建,速度主要取决于网速
  • windows 平台编译openssl
  • 击退手抖困扰:全面解析健康护理指南
  • 小程序API —— 52 小程序界面交互 - 模态对话框 - 消息对话框
  • Windows 图形显示驱动开发-WDDM 2.9功能- 支持跨适配器资源扫描 (CASO)(二)
  • 基于FPGA频率、幅度、相位可调的任意函数发生器(DDS)实现
  • hexo+butterfly博客功能完善和美化(三)---评论功能载入
  • C#Dictionary值拷贝还是引用