使用nexus搭建docker私服
- 1、编写`docker-compose`文件,实现`nexus`的部署
- 2、修改/usr/lib/systemd/system/docker.service 配置文件
- 3、访问 `nexus`创建一个 `docker`仓库
我们知道在
nexus2
的时候,我们大多使用它作为一个
maven
私服,不过在
nexus3
时,它也可以作为一个
docker
私服来使用。今天我们使用
docker-compose
来搭建一个docker私服。
一、需求:
- 使用
docker-compose
完成docker
私服的搭建 - 使用
47.101.130.164:9001
作为上传私有镜像的服务区和端口 - 创建的
docker
仓库和push
和pull
镜像,即仓库类型为hosted
二、实现步骤
1、编写docker-compose
文件,实现nexus
的部署
备注 | 描述 |
9000端口 | 为 |
9001端口 | 我们会创建一个自己的 |
nexus-data | 此数据卷中保存了 |
version: '3'
services:
nexus:
image: sonatype/nexus3:3.19.1 # 指定 nexus 的镜像
ports:
- "9000:8081" # 将容器的 8081 端口映射到宿主机的9000端口
- “9001:9001” # 9001 端口作为我们自己创建私有docker仓库的端口,实现上传镜像端口
volumes:
- "nexus-data:/nexus-data" # 数据卷
environment:
INSTALL4J_ADD_VM_PARAMS: -Xms1g -Xmx1g -XX:MaxDirectMemorySize=3g # 指定jvm参数
NEXUS_CONTEXT: nexus # 指定nexus context-path
volumes:
nexus-data:
2、修改/usr/lib/systemd/system/docker.service 配置文件
因为我本地不是 https
,不配置可能发生异常,导致镜像push
不到私服
修改步骤如下:
1、修改 docker.service
配置文件
2、重新启动docker
容器
systemctl daemon-reload
systemctl restart docker.service
3、访问 nexus
创建一个 docker
仓库
> docker仓库类型
-
hosted:
此类型的仓库,可以push
和pull
操作,可以当作我们项目开发中的私有仓库 -
proxy
: 此类型的仓库,只可以进行pull
操作,可以代理一些 中央仓库等 -
group
: 此类型的仓库,只可以进行pull
操作,用于将多个仓库放到一个组中,便于拉取数据(docker镜像等
)使用。
1、此处我们简单演示一个 hosted
类型的仓库
a)、创建一个 Blob Stores,用于存储数据
b)、创建一个hosted 类型的仓库
c)、测试上传和拉取镜像
到此,一个简单的私服就搭建完成了。
当然nexus
的功能更加强大,可以尝试一下别的功能。