Docker-08-企业级镜像仓库

362 阅读1分钟

「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」。

使用 Docker 官方的 Registry 创建的仓库,面临着这样的问题,比如删除镜像后空间默认不会回收,造成空间被占用。比较常见的做法是使用 Nexus 来管理企业的工具包。
Nexus 不仅可以创建 Docker 仓库,也可以 NPM、Maven 等多种类型的仓库。

启动 Nexus  容器

使用 docker run 命令启动 Nexus 容器:

启动Nexus容器

查看启动后的 Nexus 容器:

Nexus容器

查看 Nexus 和 registry 服务

Nexus 启动成功后,可以使用 HostIP+8081 访问 Nexus 服务,使用 HostIP+8082 访问 registry 服务。

查看 Nexus 服务:在本地 windows 访问虚拟机的 IP+8081 端口

Nexus服务

查看 registry 服务:在本地 windows 访问虚拟机的 IP+8082 端口

registry服务

添加访问权限:

添加访问权限

添加访问权限

以上操作主要是为 dockerrepository 创建一条规则,具体约束为 adminanonymous 都可以对镜像仓库进行所有操作。

登录 Nexusregistry

登录Nexus的registry

密码在/root/.docker/config.json 中。

推送私有镜像到 Nexusregistry

推送镜像

查看推送结果:

推送结果

到此,Nexusregistry 搭建完成。

Q&A

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