安裝nexus作為maven的私服,當然實際是可以不使用docker安裝的,本身二進制進行安裝也非常簡單
1. 查看 nexus 鏡像
sudo docker search nexus
docker官網:Docker Hub,可以搜索具體有哪些版本,安裝時可指定版本
2. 下載鏡像
我直接下載了看到的最新版本
sudo docker pull sonatype/nexus3:3.37.3
3. 查看已存在的鏡像
docker images
4. 新建用戶
使用一個專門的用戶作為docker內的執行用戶
下面是創建了一個 docker 用戶並加入 docker 組,我在創建 docker 用戶時發現已經存在了 docker 組,創建 docker 用戶必須要加入這個組才能創建(或者加入其他組?)
后面發現了個問題,在創建容器時指定這個用戶啟動過程會報錯權限不足,因此沒用了
sudo adduser docker -g docker
5. 創建數據目錄
這個目錄保存着 nexus 的各種數據,當刪除容器、鏡像后,可以取出這個目錄打包,下一次安裝的 nexus 的數據目錄指向這個目錄,其內數據(下載的包、權限等)還可以使用
使用docker用戶執行
docker目錄是docker的用戶目錄
mkdir -p /home/docker/nexus/nexus-data
6. 創建 nexus 容器
【錯誤命令】這里有問題,指定用戶執行發現啟動總是報錯沒有權限,不知道是為啥,搞了半天不行,倒是發現了 docker 命令的執行,要么使用 root 用戶,要么這個用戶在 docker 組內,因此上面創建的 docker 用戶可以不用 sudo 執行 docker 命令
docker run \ -u 1001:995 \ -p 8081:8081 \ -v /home/docker/nexus/nexus-data:/var/nexus-data \ -v /etc/localtime:/etc/localtime:ro \ --name nexus3 \ --restart=always \ -d sonatype/nexus3:3.37.3 # -u 指定啟動用戶 # -p 端口映射, 前者宿主機, 后者容器 # -v 本地目錄和 docker 容器內目錄的映射. 兩個一個是映射數據目錄, 一個映射時區文件. ro 只讀 # --name 指定創建后的容器名稱 # --restart=always docker 啟動/重啟時, 此容器默認跟着啟動 # -d 后台運行 # sonatype/nexus3:3.37.3 鏡像名稱 + tag # 注意, -u 原來直接使用 docker 名稱來指定, 發現報錯, 需要使用 uid 指定, cat cat /etc/passwd 輸出的第二個冒號后的那個數字
創建后自動啟動了
這里是正確的,不指定用戶能啟動
docker run \ -p 8081:8081 \ -v /home/docker/nexus/nexus-data:/var/nexus-data \ -v /etc/localtime:/etc/localtime:ro \ --name nexus3 \ --restart=always \ -d sonatype/nexus3:3.37.3
7. 查看啟動日志
docker logs 容器名稱/容器id
9. nexus的配置
192.168.33.100:8081 登錄
密碼需要登錄docker nexus
docker exec -it 容器id/容器名稱 /bin/bash
cat /opt/sonatype/sonatype-work/nexus3/admin.password