配置私有仓库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qmqm011/article/details/88830861

安装Docker后,可以利用官方提供的registry镜像来简单搭建一套本地私有仓库。

一、安装Docker Registry

root@ubuntu:/# docker run -d -p 5000:5000 --restart=always --name registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
c87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
Status: Downloaded newer image for registry:2
7cb8626263ed3bf44eaa1e55077e3f17c8138914233f40a006dbc61bfdbb2e28

以上命令会自动下载并启动一个registry容器,创建本地的私有仓库服务。可以访问http://192.168.10.128:5000/v2/_catalog测试启动成功:

{"repositories":[]}表示私有仓库搭建成功并且内容为空。

Registry比较关键的参数是配置文件和仓库存储路径。默认的配置文件为容器的/etc/docker/registry/config.yml,通过如下命令,可以指定使用本地主机上的配置文件(如:/home/user/registry-conf):

root@ubuntu:/# docer run -d -p 5000:5000 --restart=always --name registry -v /home/user/registry-conf/config.yml:/etc/docker/registry/config.yml registry:2

默认情况下,镜像存储在容器的/var/lib/registry目录下,可以通过-v参数来将镜像文件存储在本地的指定路径。例如,下面的命令将镜像存储到本地/opt/data/registry目录中:

root@ubuntu:/# docer run -d -p 5000:5000 --restart=always --name registry -v /opt/data/registry:/var/lib/registry registry:2

比较新的Docker版本对安全性要求较高,会要求仓库支持SSL/TLS证书。对于内部使用的私有仓库,可以自行配置证书或者关闭对私有仓库的安全性检查。这里先关闭安全性检查。

修改/etc/docker/daemon.json文件,添加如下内容,保存退出:

{"insecure-registries":["192.168.10.128:5000"]}

之后重启Docker服务:

root@ubuntu:~# systemctl restart docker
root@ubuntu:~#

二、上传镜像到私有仓库

2.1 使用docker tag命令标记镜像

docker tag命令的使用方式如下:

root@ubuntu:~# docker tag --help

Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

例如:

root@ubuntu:~# docker tag ubuntu:18.04 192.168.10.128:5000/ubuntu:18.04
root@ubuntu:~#

2.2 上传标记的镜像

使用docker push上传标记的镜像,该命令的使用方式如下:

root@ubuntu:~# docker push --help

Usage:  docker push [OPTIONS] NAME[:TAG]

Push an image or a repository to a registry

Options:
      --disable-content-trust   Skip image signing (default true)

例如,上传刚刚标记的镜像:

root@ubuntu:~# docker push 192.168.10.128:5000/ubuntu:18.04
The push refers to repository [192.168.10.128:5000/ubuntu]
b57c79f4a9f3: Pushed
d60e01b37e74: Pushed
e45cfbc98a50: Pushed
762d8e1a6054: Pushed
18.04: digest: sha256:f2557f94cac1cc4509d0483cb6e302da841ecd6f82eb2e91dc7ba6cfd0c580ab size: 1150

之后刷新http://192.168.10.128:5000/v2/_catalog,可以看到镜像上传成功:

 

猜你喜欢

转载自blog.csdn.net/qmqm011/article/details/88830861