背景
在实际的开发运维过程中,经常需要使用镜像仓库的情况,虽然阿里云、腾讯云等都提供了带有免费额度的镜像仓库服务,但是由于账号等问题,我们还是需要自己搭建一个镜像仓库服务,供内网环境下使用。
大致的步骤:
- 准备docker环境
- 配置非http访问( Insecure Registries)
- 重新家在docker
- 启动registry
- 启动registry-web
docker环境
假设你的本地已经装好了docker-ce,并且可以正常运行。
参考:
1
2
3
4
|
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里的设置:
添加图中框起来的代码:
1
2
3
|
"insecure-registries" : [ "192.168.10.206:5000" ] |
注:ip是下面registry服务部署的机器ip 5000时registry服务默认的暴露端口 我们可以自行修改
如果您是linux环境,需要修改/etc/docker/deamon.json
文件,如果没有这个文件,可以新建。
重新加载docker
desktop在配置完之后,我们可以直接点击Apply & Restart
按钮进行重启。 linux环境下
1
2
3
|
sudo systemctl status docker sudo systemctl reload docker sudo systemctl restart docker |
其中第二个命令执行完即可,如果未生效,可以继续执行第三个命令。 第三个命令执行完之后,那些容器的启动策略不是always的就会停掉。所以我们要慎重使用这个命令。
启动registry
设定当前目录为工作环境,创建config.yml文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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 |
执行命令:
1
2
3
4
5
6
7
8
|
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
即为部署成功
测试:
1
2
3
|
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
文件
1
2
3
4
5
6
7
8
9
10
|
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 |
启动容器
1
2
3
4
5
6
|
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
,看到如下页面,大功告成。
以上就是内网环境下registry搭建步骤详解的详细内容,更多关于内网环境registry搭建的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.cn/post/7158735977664479262