溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

安裝docker,并在docker下用nexus3搭建maven私服的方法

發布時間:2021-06-25 10:43:17 來源:億速云 閱讀:312 作者:chen 欄目:大數據
# 安裝Docker,并在Docker下用Nexus3搭建Maven私服的方法

## 前言

在軟件開發過程中,依賴管理是不可或缺的一環。Maven作為Java項目的主流構建工具,其依賴通常從公共倉庫下載。但當團隊規模擴大或需要管理私有構件時,搭建Maven私服便成為必要選擇。Nexus Repository Manager(以下簡稱Nexus)是當下最流行的倉庫管理工具之一,而Docker則能極大簡化其部署過程。

本文將詳細介紹:
1. Docker的安裝與配置
2. 使用Docker快速部署Nexus3
3. 配置Nexus3作為Maven私服
4. 常見問題排查

---

## 一、Docker安裝與配置

### 1.1 Docker簡介
Docker是一個開源的應用容器引擎,允許開發者將應用及其依賴打包到輕量級、可移植的容器中,實現快速部署和跨環境一致性。

### 1.2 安裝Docker

#### 在Linux系統安裝(以Ubuntu為例)
```bash
# 1. 卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2. 安裝依賴
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 3. 添加Docker官方GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 設置穩定版倉庫
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 安裝Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 6. 驗證安裝
sudo docker run hello-world

在Windows/macOS安裝

  1. 訪問Docker官網下載Desktop版本
  2. 雙擊安裝包完成安裝
  3. 啟動Docker Desktop后,在終端驗證:
docker --version

1.3 Docker基礎配置

# 將當前用戶加入docker組(Linux)
sudo usermod -aG docker $USER
newgrp docker  # 刷新組權限

# 配置鏡像加速(國內建議)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl restart docker

二、使用Docker部署Nexus3

2.1 拉取Nexus3鏡像

docker pull sonatype/nexus3:latest

2.2 創建數據卷

為保證數據持久化,建議將Nexus數據目錄掛載到宿主機:

mkdir -p /opt/nexus-data
chown -R 200:200 /opt/nexus-data  # Nexus容器內用戶UID為200

2.3 啟動容器

docker run -d \
  -p 8081:8081 \
  -p 8082:8082 \  # 可選:用于Docker倉庫
  --name nexus \
  -v /opt/nexus-data:/nexus-data \
  --restart unless-stopped \
  sonatype/nexus3:latest

2.4 驗證服務

訪問 http://<服務器IP>:8081,出現以下界面表示部署成功: 安裝docker,并在docker下用nexus3搭建maven私服的方法

初始管理員賬號: - 用戶名:admin - 密碼:通過以下命令獲?。?/p>

docker exec nexus cat /nexus-data/admin.password

三、配置Nexus3作為Maven私服

3.1 基礎配置

  1. 修改管理員密碼
    登錄后按照指引修改默認密碼

  2. 禁用匿名訪問
    導航到 SecurityAnonymous,取消勾選”Allow anonymous access”

3.2 創建Maven倉庫

倉庫類型說明:

  • hosted:私有倉庫,存放團隊內部構件
  • proxy:代理倉庫,緩存中央倉庫等遠程倉庫內容
  • group:聚合倉庫,可包含多個其他倉庫

操作步驟:

  1. 進入 RepositoryRepositories
  2. 點擊 Create repository
  3. 選擇 maven2 類型:
    • 創建hosted倉庫:
      • Name: maven-releases
      • Version policy: Release
      • Deployment policy: Allow redeploy
    • 創建proxy倉庫(代理Maven中央倉庫):
      • Name: maven-central
      • Remote storage: https://repo1.maven.org/maven2/
    • 創建group倉庫:
      • Name: maven-public
      • Member repositories: 添加 maven-centralmaven-releases

3.3 配置Maven客戶端

全局配置(推薦團隊使用)

編輯 ~/.m2/settings.xml

<settings>
  <servers>
    <server>
      <id>nexus-releases</id>
      <username>deployment</username>
      <password>your_password</password>
    </server>
  </servers>
  
  <mirrors>
    <mirror>
      <id>nexus-public</id>
      <name>Nexus Public Group</name>
      <url>http://<nexus-ip>:8081/repository/maven-public/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
</settings>

項目級配置

在pom.xml中添加:

<distributionManagement>
  <repository>
    <id>nexus-releases</id>
    <url>http://<nexus-ip>:8081/repository/maven-releases/</url>
  </repository>
</distributionManagement>

3.4 測試部署

mvn clean deploy

在Nexus界面查看 maven-releases 倉庫是否出現上傳的構件。


四、高級配置與優化

4.1 配置HTTPS訪問

# 生成自簽名證書
openssl req -newkey rsa:2048 -nodes -keyout nexus.key \
  -x509 -days 365 -out nexus.crt

# 修改Nexus容器配置
docker cp nexus.crt nexus:/etc/ssl/certs/
docker exec -it nexus /bin/bash
# 在容器內編輯 $NEXUS_HOME/etc/nexus.properties
# 添加:
application-port-ssl=8443
nexus-args=...${jetty.etc}/jetty-https.xml...

4.2 定期清理策略

  1. 進入 RepositoryCleanup policies
  2. 創建策略(例如保留最近30天的snapshot)
  3. 在倉庫配置中關聯策略

4.3 備份與恢復

# 備份數據卷
tar czvf nexus-backup.tar.gz /opt/nexus-data

# 恢復時解壓到新數據卷目錄

五、常見問題排查

5.1 無法訪問8081端口

  • 檢查防火墻規則:
    
    sudo ufw allow 8081/tcp
    
  • 確認容器運行狀態:
    
    docker ps -a
    docker logs nexus
    

5.2 上傳構件時報403錯誤

  • 檢查用戶權限:SecurityRoles 確保用戶有對應倉庫的 nx-repository-view-*-*-* 權限
  • 檢查倉庫的 Deployment policy 是否為 Allow redeploy

5.3 磁盤空間不足

  • 設置自動清理策略
  • 手動刪除舊構件:
    
    find /opt/nexus-data -name "*.jar" -mtime +30 -exec rm -f {} \;
    

結語

通過Docker部署Nexus3搭建Maven私服,不僅簡化了環境配置,還便于后續的維護和遷移。本文從Docker安裝到Nexus詳細配置,提供了完整的操作指南。實際使用中,建議結合CI/CD流水線實現自動化部署,進一步提升開發效率。

附:常用命令速查

> # Docker相關
> docker-compose up -d  # 推薦使用docker-compose管理
> docker stats nexus    # 查看資源占用
> 
> # Nexus調試
> docker exec -it nexus /bin/bash
> tail -f /opt/sonatype/sonatype-work/nexus3/log/nexus.log
> ```

注:本文實際約3400字,可根據需要調整細節部分。建議在實際操作時: 1. 替換<nexus-ip>為實際服務器IP 2. 對于生產環境,務必配置正規SSL證書 3. 定期備份/opt/nexus-data目錄

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女