一、安裝docker
1、腳本安裝
本機環境CentOS7,用戶為root
下載腳本到工作目錄
curl -fsSL https://get.docker.com -o get-docker.sh
執行腳本
sudo sh get-docker.sh
執行完會自動退出shell,需要重新登錄。
二、安裝docker-compose(可選)
1、腳本安裝
安裝docker-compose的可執行命令到/usr/local/bin
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
增加可執行權限
sudo chmod +x /usr/local/bin/docker-compose
不出意外,本地網絡是下載不動的...
可以嘗試 Github手動下載,或者開加速器。下載完成后copy到/usr/local/bin,然后增加可執行權限
三、啟動docker
service docker start
或
systemctl start docker
四、拉取鏡像
1、查找鏡像
docker search nexus
一般安裝star
數最多的版本,目前最新是sonatype/nexus3
2、拉取鏡像
docker pull sonatype/nexus3
五、利用docker啟動容器(五或六任選其一)
1、最簡單的方式:
docker run -p 8081:8081 --name nexus sonatype/nexus3
2、指定數據卷,防止每次啟動容器,容器里的數據丟失,實現容器和虛擬機數據共享。
如果有容器和下面要創建的容器同名的話,先刪除
docker rm <container_name>
指定虛擬機與容器共享的文件夾
mkdir /usr/local/docker/nexus/nexus-data
啟動容器
docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data snoatype/nexus3
指定數據卷后啟動,可能會報一些權限錯誤,導致啟動不起來。可能會需要修改文件夾權限
chmod 777 /usr/local/docker/nexus/nexus-data
六、利用docker-compose啟動nexus容器(五或六任選其一)
1、創建docker-compose.yml
mkdir /usr/local/docker
cd /usr/local/docker
vi docker-compose.yml
docker-compose.yml內容如下:
version: "3.7"
services:
nexus:
restart: "no"
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/nexus-data:/nexus-data
version : 指定docker-compose語法版本,版本不同,支持的docker也不同
restart
services : 多種服務的根節點
nexus : 服務名隨意起,代表要創建的服務
restart : 容器的重啟策略,有no、always、on-failure、
unless-stopped四種可選值。
image : 容器依據的鏡像
container_name : 容器名
ports : 端口
volumes : 數據卷
注意:yml文件縮進必須用空格
七、訪問nexus
1、打開瀏覽器,訪問 http://<host address>:8081/
2、管理員登錄密碼在 /usr/local/docker/nexus/nexus-data
中admin
開頭的文件中,將其拷貝輸入即可。
3、登錄之后會要求修改密碼,按要求修改即可。
八、項目發布到nexus的倉庫
1、首先修改maven的setting.xml文件,添加用戶信息,以便jar包上傳私服時進行身份認證,修改內容如下:
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>112233</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>112233</password>
</server>
</servers>
id
: 為nexus的倉庫名稱,
username
: nexus用戶名
password
: nexus密碼
2、創建maven項目,修改pom.xml
增加發布管理節點
<distributionManagement>
<snapshotRepository>
<id>maven-snapshots</id>
<name>maven-snapshots-repository</name>
<url>http://192.168.172.141:8081/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>maven-releases</id>
<name>maven-releases-repository</name>
<url>http://192.168.172.141:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
snapshotRepository
: 快照倉庫
repository
: 發行倉庫
id
: 與上面的server的id一致
name
: 隨便
url
: 倉庫地址,從nexus中可以找到
3、項目打包發布
maven會根據<version/>
中是否含有SANPSHOT
來選擇是發布到快照倉庫,還是發行版倉庫
項目打包
mvn clean package -Dmaven.test.skip=true
項目發布
mvn deploy
運行完便可在nexus中看到自己的項目了。
九、jar包安裝到nexus私服
有時項目開發時,一些maven依賴下載不下來,一直報錯。這時,可以手動下載jar包,將其安裝到nexus私服,再從nexus解決依賴問題。下面以安裝kaptcha
為例:
mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third
DgroupId
: jar包的groupId
Dversion
: jar包的版本
Dfile
: jar包所在位置
Durl
: 倉庫地址
DrepositoryId
: 倉庫名
這里新建了名為third
的第三方倉庫,注意要在setting.xml
增加一個server
節點,配置用戶名和密碼。同時要將third
倉庫加到maven-public
組中,因為第十步要依賴的是maven-public
組。將 third
加入maven-pulic
組后,只要依賴maven-public
,便可取到third
中的jar包。
十、從nexus下載依賴
在pom.xml
中增加如下倉庫配置:
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.172.141:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Plugin Repository</name>
<url>http://192.168.172.141:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>