使用 Docker 官方的 Registry 创建的仓库,面临着这样的问题,比如删除镜像后空间默认不会回收,造成空间被占用。比较常见的做法是使用 Nexus 来管理企业的工具包。
Nexus 不仅可以创建 Docker 仓库,也可以 NPM、Maven 等多种类型的仓库。
使用docker run命令启动Nexus容器:
查看启动后的Nexus容器:
Nexus
启动成功后,可以使用HostIP+8081
访问Nexus
服务,使用HostIP+8082
访问registry
服务。
查看Nexus
服务:
在本地windows
访问虚拟机的IP+8081
端口
查看registry
服务:
在本地windows
访问虚拟机的IP+8082
端口
添加访问权限:
以上操作主要是为docker
的repository
创建一条规则,具体约束为admin
和anonymous
都可以对镜像仓库进行所有操作。
登录Nexus
的registry
:
推送私有镜像到Nexus
的registry
:
查看推送结果:
到此,Nexus
的registry
搭建完成。
Nexus
服务对主机的内存和磁盘都有限制,所以在资源比较小的虚拟机上启动Nexus
容器之后,需要对其资源配置文件进行修改。
Nexus
的启动命令:
docker run -d --name nexus3 --restart=always \
-p 8081:8081 \
-p 8082:8082 \
--mount src=nexus-data,target=/nexus-data \
sonatype/nexus3
内存配置文件:
cat /etc/security/limits.conf
nexus hard nofile 1024
nexus soft nofile 1024
磁盘配置文件:
向/opt/sonatype/nexus/bin/nexus.vmoptions
,添加如下行:
-Dstorage.diskCache.diskFreeSpaceLimit=1024