亲宝软件园·资讯

展开

内网环境下registry搭建步骤详解

YueShi 人气:0

背景

在实际的开发运维过程中,经常需要使用镜像仓库的情况,虽然阿里云、腾讯云等都提供了带有免费额度的镜像仓库服务,但是由于账号等问题,我们还是需要自己搭建一个镜像仓库服务,供内网环境下使用。

大致的步骤:

docker环境

假设你的本地已经装好了docker-ce,并且可以正常运行。

参考:

docker desktop for windows
docker desktop for mac
apt-get install docker
yum install docker

配置http可访问

默认的docker与docker registry交互是需要在https的环境下交互的,但是大多数情况下我们的服务是在内网的安全环境下的,我们只需要使用http即可。 幸好docker为我们预留了可以使用http的方法。 那就是需要修改deamon.json文件。

如果你是mac或者是windows的desktop端,需要点击设置,修改docker engine里的设置:

添加图中框起来的代码:

  "insecure-registries": [
    "192.168.10.206:5000"
  ]

注:ip是下面registry服务部署的机器ip 5000时registry服务默认的暴露端口 我们可以自行修改

如果您是linux环境,需要修改/etc/docker/deamon.json文件,如果没有这个文件,可以新建。

重新加载docker

desktop在配置完之后,我们可以直接点击Apply & Restart按钮进行重启。 linux环境下

sudo systemctl status docker
sudo systemctl reload docker
sudo systemctl restart docker

其中第二个命令执行完即可,如果未生效,可以继续执行第三个命令。 第三个命令执行完之后,那些容器的启动策略不是always的就会停掉。所以我们要慎重使用这个命令。

启动registry

设定当前目录为工作环境,创建config.yml文件如下:

version: 0.1
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

执行命令:

mkdir data
docker run -d \
    --name registry-server \
    --restart=always \
    -p 5000:5000 \
    -v `pwd`/data:/var/lib/registry \
    -v `pwd`/config.yml:/etc/docker/registry/config.yml \
    registry

访问ip:5000/v2/_catalog即为部署成功

测试:

docker pull alpine
docker tag alpine:latest 192.168.10.206:5000/alpine:latest
docker push 192.168.10.206:5000/alpine:latest

启动registry-web

由于官方的registry只是提供了api,没有一个图形化界面供显示和操作,所以我们可以利用第三方提供的镜像启动一个图形化页面。

进入一个工作目录。 创建config.yml文件

registry:
  # Docker registry url
     url: http://192.168.10.206:5000/v2
     # Docker registry fqdn
     name: localhost:5000
     # To allow image delete, should be false
     readonly: false
     auth:
     # Disable authentication
         enabled: false

启动容器

docker run -d \
    -p 8080:8080 \
    --name registry-web \
    --restart=always \
    -v $(pwd)/config.yml:/conf/config.yml:ro \
    hyper/docker-registry-web

访问ip:8080,看到如下页面,大功告成。

加载全部内容

相关教程
猜你喜欢
用户评论