使用 registry 搭建docker本地仓库

我们有两台虚拟机:1912.168.209.130和192.168.209.131

实验目的是:在131上搭建一个私有仓库,使130和131能够正常访问并可上传下载自己本地的镜像。

1,首先我们要在131获取一个registry 镜像,这里直接从阿里云官方仓库下载。下载之前,同样需要先配置/etc/docker/daemon.json

{

         "registry-mirrors": ["https://wyrsf017.mirror.aliyuncs.com"]

}
 

然后登录阿里云:

[root@localhost ~]# docker login --username=一梦浮生1987 registry.cn-hangzhou.aliyuncs.com
Password:
.Login Succeeded
最后pull一个registry 镜像

 docker pull registry

 

2,查看下载的镜像

[root@localhost ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
docker.io/registry   latest              1fd8e1b0bb7e        6 weeks ago         26.2 MB
 

3,启动镜像

首先,要在本地创建一个用来存放镜像的目录,这里就指定为/data01

mkdir -p /data01

[root@localhost ~]#  docker run -itd -p 5000:5000 --name=ymfsregistry --restart=always --privileged=true  -v /data01:/var/lib/registry docker.io/registry
0c0f7970355339644be4df1d7b0cf926e0828b03c02f5046f8039c900b18d946
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
0c0f79703553        docker.io/registry   "/entrypoint.sh /e..."   6 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   ymfsregistry
[root@localhost ~]#

解释:

-p 5000:5000 指定registry容器端口5000映射宿主机端口5000

--name=ymfsregistry 给给容器起一个自己定义的名字

--restart=always 设置容器自动重启

--privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限

-v /data01:/var/lib/registry 将宿主机的/var/lib/registry挂载到容器的/data01,加入有删除容器的操作,已保存的镜像不会丢失。这里必须指定容器的目录为/var/lib/registry,因为镜像默认保存位置为/var/lib/registry。

docker.io/registry 镜像名称,可以自定义

4,在130上,给docker添加HTTPS访问协议

vim /etc/docker/daemon.json

{
    "insecure-registries":["192.168.209.131:5000"],
   "registry-mirrors": ["https://wyrsf017.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker

 

[root@localhost ~]# netstat -ano | grep 5000
tcp6       0      0 :::5000                 :::*                    LISTEN      off (0.00/0/0)
发现宿主机5000端口已启动。

5,新建一个tag,把130上的NGINX镜像改个名称

docker tag nginx:v1 192.168.209.131:5000/nginx:v1

 

6.push镜像到本地仓库里

docker push 192.168.209.131:5000/nginx:v1

7.在131上下载刚从130push上去的nginx镜像

docker pull 192.168.209.131:5000/nginx:v1

 

成功了,发现可以下下来

我们进入宿主机的/data01/docker/registry/v2/repositories/nginx目录下,即可看到该nginx镜像,就算删除了docker容器,该镜像依然存在

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值