Linux docker7--私有镜像仓库registry和UI搭建及使用

Linux docker7--私有镜像仓库registry和UI搭建及使用

码农世界 2024-05-22 前端 80 次浏览 0个评论

一、对于开源的镜像,如redis,nginx等,可以通过官方仓库Docker Hub,或者国内的阿里云等共有仓库下载获取到镜像。但是企业内对于自己的研发产品不可能往公共仓库去发布镜像的,一般都会搭建私有的镜像仓库,保障内部研发的镜像对内可用,外部是无法获取的。Redistry是Docker官方提供的私有镜像仓库,本例搭建一下。

二、搭建Redistry和UI服务

1、创建registry_data数据卷

命令:

docker volume create registry_data

2、编写docker-compose.yml文件,配置私有仓库registry和可视化界面UI。

docker-compose.yml示例如下:

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - registry_data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8092:80
    environment:
      - REGISTRY_TITLE=weisian的私有镜像仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry
volumes:
  registry_data:

说明:

registry服务:

使用registry最新镜像,指定数据卷registry_data打通容器内的/var/lib/registry目录。

UI服务:

使用joxit/docker-registry-ui:static镜像,指定宿主机8092端口映射容器内的80端口,指定环境变量(标题,仓库服务的地址为仓库服务的5000端口),ui服务依赖于registry服务的运行。

volumes:为生明registry_data是一个数据卷,需要提前创建好。

3、运行配置,启动registry和ui

命令:

docker-compose -f docker-compose.yml up -d

4、查看是否启动成功

(1)、查看docker的进程

docker ps 可以看到两个进程都存在,端口也都为配置的端口

(2)、浏览器访问镜像仓库地址,可以正常访问

http://192.168.249.88:8092/

以上完成了私有镜像仓库的搭建。

三、推送私有仓库,和私有仓库拉取镜像

1、推送到仓库前,目标镜像需要打tag,即指定仓库地址和镜像版本

(固定格式:私服ip:端口/镜像名称:版本)

命令:

docker tag nginx:latest 192.168.249.88:8092/nginx:1.1

说明:上命令将本地的nginx:latest镜像打成tag镜像(实际上tag镜像和源镜像的镜像id还是一致的,tag镜像指定了仓库地址),这样在推送tag的时候就知道往哪里推送了

2、推送tag镜像到远程仓库

命令:

docker push 192.168.249.88:8092/nginx:1.1

注:

如上图是推送失败的结果。原因就是docker使用https的请求去访问resistry的服务,但是服务器没有配置https证书,所以https请求就不能成功。解决办法:1、服务器配置https证书,2、修改docker的daemon.json信息,可以针对某些地址进行http访问

方法2步骤:

(1)、打开docker的daemon.json

vi /etc/docker/daemon.json

(2)、添加下面的配置(即请求http://192.168.249.88:8092时使用http请求方式),注意上一行需要添加英文逗号

“insecure-registries”:[“http://192.168.249.88:8092”]

(3)、# 重新加载deamon文件

systemctl daemon-reload

(4)、重启docker

systemctl restart docker

完成上诉daemon的配置后,再次推送tag,可以成功

3、查看推送的结果

浏览器访问私有镜像仓库http://192.168.249.88:8092/,可以看到有nginx的镜像了

4、拉取私有仓库的镜像

在浏览器上点击如下位置获取拉取该镜像的命令

执行命令

docker pull 192.168.249.88:8092/nginx:1.0

如下可以看出,已经拉取到仓库的镜像到docker容器中了。

5、拉取的nginx镜像,启动服务

docker run -d --name nginx_1 -p 8093:80 192.168.249.88:8092/nginx:1.0

6、查看nginx服务

http://192.168.249.88:8093/

如上完成了,私有镜像仓库的搭建,已经推送和拉取镜像的过程,验证了拉取到的镜像可以正常运行。

学海无涯苦作舟!!!

转载请注明来自码农世界,本文标题:《Linux docker7--私有镜像仓库registry和UI搭建及使用》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,80人围观)参与讨论

还没有评论,来说两句吧...

Top