Like Share Discussion Bookmark Smile

J.J. Huang   2019-05-03   Docker   瀏覽次數:

Docker - 第十章 | 安裝Nexus3

當公司專案一多一複雜,常常會有很多自己公司內部開發的lib或是專案與專案之間溝通的interface,如果每次使用時都需要將整個專案pull下來,其實是非常不符合效益的,所以我們希望可以透過一個私有庫,可以使用maven、gradle來做專案的建置,降低去專案建置的成本。當然還有一個情況是,開發的環境下無法對外做連線,只能在內部網路內架設並將第三方的lib放上,供大家內部使用。

搜尋 Image

1
docker search nexus3

拉取 Image

1
docker pull sonatype/nexus3

查看 Image

1
docker images

執行 Image (持久化資料兩種方式)

使用volume

由於docker卷是持久性的,因此可以專門為此目的建立volume。

1
2
docker volume create --name nexus-data
docker run -d -p 8081:8081 --name nexus --restart always -v nexus-data:/nexus-data sonatype/nexus3
  • -d :後台執行 Container ,並返回ID
  • -p 8081:8081 :將 Container 的 8081 Port 映射到主機的 8081 Port (前面代表主機,後面代表容器)
  • -name nexus :將 Container 取名為 nexus
  • -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
  • -v nexus-data:/nexus-data :使用剛建立的volume,nexus-data 掛載到 Container 的 /nexus-data。
  • sonatype/nexus3 :指定安裝的鏡像sonatype/nexus3

掛載主機目錄

這不可移植,因為它依賴於主機上具有正確權限的目錄。但是,在需要將此卷分配給某些特定底層存儲的某些情況下,它可能很有用。

1
2
cd /Users/morose/Documents/Temp/Docker/Nexus3
docker run -d -p 8081:8081 --name nexus --restart always -v $PWD/nexus-data:/nexus-data sonatype/nexus3
  • -d :後台執行 Container ,並返回ID
  • -p 8081:8081 :將 Container 的 8081 Port 映射到主機的 8081 Port (前面代表主機,後面代表容器)
  • -name nexus :將 Container 取名為 nexus
  • -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
  • -v $PWD/nexus-data:/nexus-data :將主機當前目錄下的 /nexus-data 掛載到 Container 的 /nexus-data。
  • sonatype/nexus3 :指定安裝的鏡像sonatype/nexus3

登入Sonatype Nexus Repository Manager

開啟瀏覽,http://127.0.0.1:8081

使用預設帳號密碼登入,admin/admin123

恭喜你已經安裝完成Nexus Server,至於如何去使用可以參考這篇Nexus3.x安裝及使用(Docker方式一鍵安裝) ,我初步看了覺得他介紹的滿詳細的。


註:以上參考了
sonatype/nexus3
使用docker(Nexus-3.3-OOS)自建Maven私服
Nexus3.x安裝及使用(Docker方式一鍵安裝)
Easypack容器系列之 Nexus 3 Docker私庫
干货:Docker 1分钟搭建Maven仓库Nexus3
nexus3 配置docker代理仓库
微服务–使用Nexus Repository Manager 3.0搭建私有Docker仓库