离线环境低配版docker镜像仓库搭建

1.准备工作:
1.1 系统环境:
[root@k8s-master ~]# uname -r
3.10.0-1160.el7.x86_64
[root@k8s-master ~]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
1.2 配置宿主机网卡转发

命令:

cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
sysctl -p /etc/sysctl.d/docker.conf

操作结果:

[root@k8s-master ~]# sysctl -p /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
[root@k8s-master ~]#
1.3 安装包获取

链接:https://pan.baidu.com/s/1HmGC1VPzjdUylqUlNSXoYA
提取码:0kwr

1.4 解压后安装
[root@k8s-master yilai]# yum install -y *.rpm
安装完成后检查:
[root@k8s-master yilai]# docker version
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:45:33 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
1.5 设置开机自启
systemctl enable docker
systemctl daemon-reload
1.6 启动docker
systemctl start docker

docker 守护进程

ps aux |grep docker|grep -v grep
2.使用docker镜像启动镜像仓库服务(低配版镜像仓库)
2.1.从docker官网下拉取registry镜像
docker pull registry:latest
2.2.然后导出上传至内网环境
docker save -o registry.2.0.tar registry:latest #registry.2.0.tar 这个名字可以随便取
2.3 再然后导入镜像启动镜像仓库服务(在内网机器执行)
docker load -i registry.2.0.tar
2.4 打个标签
[root@k8s-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 1fd8e1b0bb7e 7 weeks ago 26.2MB

[root@k8s-master ~]# docker tag 1fd8e1b0bb7e registry:2
说明:

因为用的是save导出,load导入镜像,所以需要再次打标签;
如果使用export导出,import导入方式则可以直接导出的时候设置标签,如:

docker export -o registry.2.0.tar 5dea46bed590 #5dea46bed590容器id
docker import registry.2.0.tar registry:2
2.5 启动服务
docker run -d -p 5000:5000 --restart always --name registry registry:2

说明:--restart always #docker服务重启后 该服务也会起来

2.6 检查服务
[root@k8s-master ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5dea46bed590 registry:2 "/entrypoint.sh /etc…" 6 hours ago Up 6 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
2.7 推送镜像测试
[root@k8s-slave1 ~]# docker push 172.22.14.56:5000/nginx:luffycity.com.v1
The push refers to repository [172.22.14.56:5000/nginx]
075508cf8f04: Pushed
5c865c78bc96: Pushed
134e19b2fac5: Pushed
83634f76e732: Pushed
766fe2c3fc08: Pushed
02c055ef67f5: Pushed
luffycity.com.v1: digest: sha256:61191087790c31e43eb37caa10de1135b002f10c09fdda7fa8a5989db74033aa size: 1570
[root@k8s-slave1 ~]#
2.7 检查推送情况

查看仓库内元数据

[root@k8s-slave1 ~]# curl -X GET http://172.22.14.56:5000/v2/_catalog
{"repositories":["nginx"]}

[root@k8s-slave1 ~]# curl -X GET http://172.22.14.56:5000/v2/nginx/tags/list
{"name":"nginx","tags":["luffycity.com.v1","alpine"]}
[root@k8s-slave1 ~]#
2.8 注意:如果有如下报错
[root@k8s-slave1 ~]# docker push 172.22.14.56:5000/nginx:luffycity.com.v1
The push refers to repository [172.22.14.56:5000/nginx]
Get https://172.22.14.56:5000/v2/: http: server gave HTTP response to HTTPS client

解决方法:
在推送的客户端主机上进行配置,因为这是低配的镜像仓库,所以哪台机器需要推送,则在哪台机器上配置,然后重启服务

vi /etc/docker/daemon.json
{
"insecure-registries": [
"172.22.14.56:5000"
]
}

然后重启docker服务:systemctl restart docker
注意:172.22.14.56是镜像仓库服务器的ip地址

posted @ 2021-06-04 17:02  红桃Z  阅读(376)  评论(0编辑  收藏  举报