搭建环境
master节点(registry端) | 192.168.1.10 |
node节点(客户端) | 192.168.1.20 |
关闭防火墙和selinux
---master和node节点都要关闭---
[root@master ~]# systemctl stop firewalld && systemctl disable firewalld
[root@master ~]# setenforce 0 //临时关闭
master节点
安装docker
[root@master ~]# yum -y install docker
修改docker文件
[root@master ~]# vim /etc/sysconfig/docker //修改配置文件
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.1.10:5000' //红色部分为添加进去的
ADD_REGISTRY='--add-registry 192.168.1.10:5000' //添加
启动docker
[root@master ~]# systemctl start docker
[root@master ~]# systemctl enable docker
查找镜像
[root@master ~]# docker search registry
[root@master ~]# docker pull docker.io/registry //下载镜像
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/registry latest 2e200967d166 2 weeks ago 24.2 M
启动registry仓库
[root@master ~]# docker run -itd --name=registry -p 5000:5000 --restart=always docker.io/registry:latest
722d504c123fe66aed25e270fb2f6d0cb41ebbaf204b7c273b719110b3ca856e--name:镜像名称
-p:端口号 registry对应的端口为5000
--restart=always :一般固定写上去就行了
查看是否启动成功
[root@master ~]# docker ps //查看容器状况
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
722d504c123f docker.io/registry:latest "/entrypoint.sh /e..." 15 minutes ago Up 15 minutes 0.0.0.0:5000->5000/tcp registry[root@master ~]# ss -tan | grep 5000 //查看端口是否启动
LISTEN 0 128 :::5000 :::*
打包并上传到镜像仓库
[root@master ~]# docker tag 2e200967d166 192.168.1.10:5000/registry:latest
[root@master ~]# docker tag 2e200967d166 192.168.1.10:5000/nginx:latest
[root@master ~]# docker push 192.168.1.10:5000/registry:latest
查询仓库存在的镜像
[root@master ~]# curl 192.168.1.10:5000/v2/_catalog
{"repositories":["registry"]}
将nginx上传到registry镜像仓库
[root@master ~]# docker push 192.168.1.10:5000/nginx:latest
[root@master ~]# curl 192.168.1.10:5000/v2/_catalog
{"repositories":["nginx","registry"]}
node节点
安装docker
[root@node ~]# yum -y install docker
编辑daemon.json文件,添加私有仓库地址
[root@node ~]# vi /etc/docker/daemon.json
{
"insecure-registries":["192.168.1.10:5000"]
}
启动docker
[root@node ~]# systemctl start docker
[root@node ~]# systemctl enable docker
客户端查看registry私有仓库存在的镜像
[root@node ~]# curl 192.168.1.10:5000/v2/_catalog
{"repositories":["nginx","registry"]}
客户端从registry私有仓库下载镜像
[root@node ~]# docker pull 192.168.1.10:5000/nginx:latest
[root@node ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.10:5000/nginx latest 2e200967d166 2 weeks ago 24.2 MB