使用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端口 | 爲nexus 的前端界面展示端口 |
9001端口 | 我們會創建一個自己的hosted 類型的 docker倉庫,端口爲9001 |
nexus-data | 此數據卷中保存了admin 用戶的密碼,在文件admin.password 文件中 |
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
的功能更加強大,可以嘗試一下別的功能。